2012-06-07 22 views
1

提交按钮,这是关系到How is the default submit button on an HTML form determined?禁用默认的形式在Chrome

在我的web应用程序的设计,用户应该能够按直接提交表单中输入的文本输入,在这种情况下,没有任何的应该提交该表格中的按钮,因为它们具有其他功能。为了避免默认的按钮问题,我处理了​​事件并以编程方式提交了表单。

当我在Firefox中测试这个时,似乎表单中的第一个按钮被按下了回车键。简单的解决方案是在​​事件处理程序中禁用该按钮。

,然而,似乎“聪明”选择的第一个非禁用的按钮作为默认按钮,将提交使用,即使该按钮将被​​处理程序立即禁用该按钮。

效果可以用这个jsFiddle进行测试。在Firefox中,在复选框禁用“第一个”按钮之后,在输入中输入press只会导致一次提交。在Chrome中,即使在两个按钮被禁用后,总会有两个提交,一个来自keydown,另一个来自按钮按下!

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

有什么更好的建议吗?

回答

0

也许你可以把它钩住模糊。试试这个:

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

刚试过这个,不幸的是它没有工作。输入永远不会模糊,即即使表单提交事件来自按钮,光标仍保留在输入中。正如我上面所说的,即使在按下回车键之前所有按钮都被禁用,也会使用一些按钮来提交表单。 –