https://jsfiddle.net/516amfmL/2/ - 点击表格输入,按ENTER
<form onsubmit="return false;">
<button style="display: none !important;" onclick="alert('!! Should NOT see this !!');">Hidden Button</button>
Click in input, press ENTER: <input type="text" />
<p>
<button onclick="alert('this is okay');">Visible button</button>
</p>
</form>
运行上面的JS Fiddle,Chrome&amp; Firefox的工作方式相同,MS Edge&amp; Safari以不同的方式做事。我将此列为Chrome中的一个错误,很快就被告知他们遵循的HTML标准声明:
4.10.22.2隐式提交 - 表单元素的默认按钮是树形顺序中的第一个提交按钮,其表单所有者是该表单元素。
没有人想在标准中明确是否应该忽略隐藏元素。
无论如何,这不是我的问题。我的问题是解决这个问题的最佳方法是什么?
答案 0 :(得分:0)
表单上的隐藏按钮仍处于活动状态,并且一直都是这样,但很自然地认为它会或者应该被自动忽略。
问题的一个可能解决方法是将第一个按钮更改为<input type="button"/>
<input type="button" style="display: none !important;" value="Hidden Button" onclick="alert('!! Should NOT see this !!');"/>
适用于Chrome和Edge。
这是您的fiddle updated。