【发布时间】:2015-05-21 21:21:38
【问题描述】:
我知道以前有人问过这个问题,但我找不到适合我的情况的满意答案。所以我又问了。
我有一个带有 2 个文本框和一个提交按钮的简单表单。用户在任一文本框中输入文本后,他们应该无法通过 Enter 键提交,只有提交按钮允许他们提交。我认为捕获输入键并从 onChange 事件处理程序返回 false 可以解决问题,但显然不是,这仍然会导致表单提交...
function doNotSubmit(element) {
alert("I told you not to, why did you do it?");
return false;
}
</script>
<form id="myForm" action="MyBackEnd.aspx" method="post">
<table>
<tbody>
<tr>
<td>
Joe: <input id="JoeText" type="text" onChange="doNotSubmit(this)">
</td>
<td>
Schmoe: <input id="SchmoeText" type="text" onChange="doNotSubmit(this)" >
</td>
</tr>
</tbody>
</table>
<input type=submit>
我在 Chrome 和 FF(最新版本)上进行了测试。
你能告诉我如何防止表单提交吗?
谢谢。
【问题讨论】:
-
首先,我认为您需要 onkeypress 或 onkeydown 而不是 onchange。其次,
e在你的doNotSubmit函数中来自哪里? -
@Dan 另一个问题不是真正的重复,因为它在问题和标签中明确命名了 jQuery,而这个问题也没有提及。至少,问这个问题的人对非 jQuery 解决方案持开放态度,许多人(比如我自己)更喜欢这样的解决方案。
标签: javascript html forms