Uwe*_*eim 6 c# blazor blazor-server-side
拥有 BlazorEditForm
和包含的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>
Run Code Online (Sandbox Code Playgroud)
后面有这段代码:
private EditForm _editForm;
private async Task myKeyPress(KeyboardEventArgs key)
{
if (key.CtrlKey && key.Code == @"Enter")
{
_editForm.??? // What to call here?
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我在 EditForm 类中没有看到可以调用来提交和验证表单的方法,就好像用户单击提交按钮一样。
如何以编程方式提交和验证 Blazor 表单?
<EditForm Context=MyCurrentEditContext>
<InputTextArea
onkeypress="@(async e => await myKeyPress(MyCurrentEditContext, e))"
@bind-Value="myModel.Foo" />
<button type="submit">Store it</button>
</EditForm>
@code
{
private async Task myKeyPress(EditContext editContext, KeyboardEventArgs key)
{
if (key.CtrlKey && key.Code == @"Enter")
{
if (editContext.Validate())
{
... Do stuff if valid
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8475 次 |
最近记录: |