Я использую TextField компонента Mudblazor в своем проекте Blazor Server.
Я хочу очистить текстовое поле после нажатия «Ввод».
Вот мой код в моем Index.Razor:
@страница :
<MudTextField class = "pa-4" @bind-Value = "newTodayTask" Clearable = "true"
OnKeyUp = "AddTodayTask" Adornment = "Adornment.End" AdornmentIcon = "@Icons.Outlined.Add"
FullWidth = "false" Placeholder = "Create a new task here, press Enter ↵ to save" Variant = "Variant.Text"
Style = "width:600px; margin-bottom:10px"></MudTextField>
@код:
public string newTodayTask { get; set; }
protected async Task AddTodayTask(KeyboardEventArgs e)
{
if (e.Key == "Enter")
{
if (!string.IsNullOrWhiteSpace(newTodayTask))
{
var result = false;
var todaytask = new TodayTaskModel { TaskName = newTodayTask, DueDate = dueDate, TaskCreatedBy = taskCreatedBy};
result = await Service.CreateTodayTask(todaytask);
StateHasChanged();
newTodayTask = string.Empty;
}
}
OnInitialized();
}
Я уже пробовал с строка.Пустой; и СостояниеИзменено();, но все равно не работает.
Я очень ценю любую помощь, которую могу предоставить. Спасибо
@daniherrera Спасибо за ваш ответ, так что мне нужно поместить это MudTextField в Mudform?
Привет, я не знаю, как обрабатывать отправку на Mudform. Я разместил образец с помощью EditForm, когда я прокомментировал.
На некоторых платформах нажатие клавиши «Ввод», когда текстовый элемент управления сфокусирован, неявно отправляет форму, шаблон неявное подчинение.
Поскольку ваша форма имеет только один элемент ввода, возможно, самым элегантным решением будет использовать этот шаблон в качестве UX для ввода данных. Вы должны думать о доступность.
Выкладываю образец в попробуй:
Исходный код:
<MudPaper Class = "pa-4">
<EditForm Model = "@model" OnValidSubmit = "OnValidSubmit">
<MudTextField
@bind-Value = "@model.Name"
Immediate = "true"
Label = "Some Text and press enter" />
</EditForm>
</MudPaper>
<ul>
@foreach(var s in history)
{
<li>@s</li>
}
</ul>
@code {
public class MyTask
{
public string Name {get; set;} = default!;
}
List<string> history = new List<string>();
MyTask model = new MyTask(){Name = "hi"};
private void OnValidSubmit()
{
history.Add(model.Name);
model.Name = "";
StateHasChanged();
}
}
Как вы думаете, это хорошая идея, чтобы очистить тест при нажатии Enter? Как насчет
EditForm
, введите ключ по умолчанию дляSubmit
.