【发布时间】:2020-10-03 03:47:13
【问题描述】:
有一个 Blazor EditForm 和一个包含的 InputTextArea(即多行文本框),当用户按下 Ctrl+Enter 时,我确实想验证并提交表单,就像他会点击提交按钮一样。
我已成功连接键盘处理程序,如下所示:
<EditForm Model="@myModel" Format="g" OnValidSubmit="@Store" @ref="_editForm">
<InputTextArea
onkeypress="@(async e => await myKeyPress(e))"
@bind-Value="myModel.Foo" />
<button type="submit">Store it</button>
</EditForm>
后面有这段代码:
private EditForm _editForm;
private async Task myKeyPress(KeyboardEventArgs key)
{
if (key.CtrlKey && key.Code == @"Enter")
{
_editForm.??? // What to call here?
}
}
不幸的是,我在 EditForm 类中没有看到可以调用来提交和验证表单的方法,就像用户单击提交按钮一样。
我的问题
如何以编程方式提交和验证 Blazor 表单?
【问题讨论】:
-
但是假设用户在输入后才按下回车键。这也将提交表单...实际上,如果输入控件具有焦点,并且您按 Enter 键,则表单始终会提交。考虑一下,然后重新提出您的问题...
-
@enet 由于它是一个 InputTextArea,它是一个多行控件,按下
Enter键只需将键盘插入符号放到下一行。 -
是的,你是对的。我没有注意这个事实。
标签: c# blazor blazor-server-side