在Chrome中停用默认表单提交按钮

时间:2012-06-07 23:33:00

标签: html google-chrome

这与How is the default submit button on an HTML form determined?

有关

在我的网页应用程序设计中,用户应该能够通过在文本输入中按Enter键直接提交表单,在这种情况下,该表单中的任何按钮都不应该被提交,因为它们具有其他功能。为避免出现默认按钮问题,我处理keydown事件并以编程方式提交表单。

当我在 Firefox 中对此进行测试时,似乎在输入键上按下了表单中的第一个按钮。简单的解决方案是在keydown事件处理程序中禁用该按钮。

然而,

Chrome 似乎“智能地”选择第一个非禁用按钮作为默认按钮,即使该按钮将被{{1}立即禁用,也将使用该按钮提交处理程序。

可以使用此jsFiddle测试效果。在Firefox中,通过复选框禁用“第一个”按钮后,在输入中输入按钮将仅导致一个提交。在Chrome中,即使两个按钮都被禁用,也会有两个提交,一个来自keydown,另一个来自按下按钮!

这迫使我更改代码中的所有keydown处理程序以返回false或处理所有按钮单击并检查按钮是否已禁用。似乎都不是好的代码。

有更好的建议吗?

1 个答案:

答案 0 :(得分:0)

可能你可以把它挂在模糊上。试试这个:

<input type="text" ... onblur="submit();" />