这与How is the default submit button on an HTML form determined?
有关在我的网页应用程序设计中,用户应该能够通过在文本输入中按Enter键直接提交表单,在这种情况下,该表单中的任何按钮都不应该被提交,因为它们具有其他功能。为避免出现默认按钮问题,我处理keydown
事件并以编程方式提交表单。
当我在 Firefox 中对此进行测试时,似乎在输入键上按下了表单中的第一个按钮。简单的解决方案是在keydown
事件处理程序中禁用该按钮。
Chrome 似乎“智能地”选择第一个非禁用按钮作为默认按钮,即使该按钮将被{{1}立即禁用,也将使用该按钮提交处理程序。
可以使用此jsFiddle测试效果。在Firefox中,通过复选框禁用“第一个”按钮后,在输入中输入按钮将仅导致一个提交。在Chrome中,即使两个按钮都被禁用,也会有两个提交,一个来自keydown,另一个来自按下按钮!
这迫使我更改代码中的所有keydown处理程序以返回false或处理所有按钮单击并检查按钮是否已禁用。似乎都不是好的代码。
有更好的建议吗?
答案 0 :(得分:0)
可能你可以把它挂在模糊上。试试这个:
<input type="text" ... onblur="submit();" />