【发布时间】:2020-09-15 04:13:55
【问题描述】:
我找到了this article,但我很难理解如何防止任何<input> 独立地在“输入”键上提交
<EditForm Model="exampleModel" OnValidSubmit="HandleValidSubmit">
<DataAnnotationsValidator />
<ValidationSummary />
<InputText id="name" @bind-Value="exampleModel.Name" />
<InputText id="name2" @bind-Value="exampleModel.Name2" />
<button type="submit">Submit</button>
</EditForm>
@code {
private ExampleModel exampleModel = new ExampleModel();
private void HandleValidSubmit()
{
Console.WriteLine("OnValidSubmit");
}
public class ExampleModel
{
[Required]
[StringLength(10, ErrorMessage = "Name is too long.")]
public string Name { get; set; }
public string Name2 {get; set;}
}
}
用例
回车键 在 HTML 表单上,如果您正在填写文本框并按下回车键,即使您尚未完成其余信息的填写,它也会提交表单。有许多网站使用此功能,例如当您按 Enter 键时会提交 Google 搜索框。之所以可行,是因为您只有一个文本框要填写,但如果要填写多个字段,您不希望表单按 Enter 键提交。
【问题讨论】:
-
在写我的之前我已经看过这个问题了。我决定写一个新的,因为在表单中放置了两个提交按钮,这似乎不是一个好的解决方案,而只是出于某种原因的一种解决方法。无论如何,@enet 我已经尝试过您的解决方案,但是如果我多次按“输入”,则在一种情况下表单仍会运行提交
-
在一个表单中有两个提交按钮是荒谬的小丑,而不是编程。它绝对不属于解决方法的含义。我再次运行我的代码,它永远不允许提交,只要提交按钮具有输入焦点并且您按 Enter 键。如果另一个控件(例如文本框)具有输入焦点,并且您按下 Enter 键,那么如果您的数据有效,那么当然会执行提交操作。
-
我同意你的看法。这就是为什么我提出一个新问题。问题标题“编辑表单-...”背后有一个含义,因为我想阻止它来自编辑表单中包含的任何输入。
-
我理解你...如果可以的话,我会寻找解决方案。要求重新打开您的问题。没有理由关闭它。
-
Leonardo Lurci,很抱歉,但我认为目前无法在 Blazor 中完成此操作,除非您使用 JSInterop。我在 github 上寻求帮助,但无济于事。 Blazor 团队成员将有类似问题的用户重定向到 stackoverflow。这个特性非常重要,我希望 Blazor 团队可以提供一个解决方案......
标签: blazor