按Enter键时阻止表单提交

Pie*_*ter 10 html javascript

我有一个带有禁用提交按钮的表单.即使用户无法按下此按钮,他仍然可以按Enter键提交表单.我该如何预防呢?

Bal*_*usC 26

如果你想完全禁用表单提交(但是我想知道为什么整个<form>元素就在那里),那么你需要让它的submit事件处理程序返回false.

所以,基本上:

<form onsubmit="return false;">
Run Code Online (Sandbox Code Playgroud)

您可以在onload期间使用Javascript/DOM操作添加它,正如之前的回答者指出的那样.

如果你只是想禁用Enter键提交表单,那么你需要让它的keypress事件处理程序返回false时的键码匹配13(这个人是跨浏览器兼容的!).

<form onkeypress="return event.keyCode != 13;">
Run Code Online (Sandbox Code Playgroud)

但是,这也会禁用表单Enter中任何<textarea>元素的键.如果您有任何人,你想,让他们发挥作用,那么你就需要删除onkeypress<form>复制它在所有<input><select>元素.jQuery可以对此有所帮助:

$('input, select').keypress(function(event) { return event.keyCode != 13; });
Run Code Online (Sandbox Code Playgroud)


Mat*_*att 10

假设HTML:

<form id="myForm"> ...
Run Code Online (Sandbox Code Playgroud)

你可以用JavaScript做到这一点:

document.getElementById("myForm").onsubmit = function () {
    return false;
};
Run Code Online (Sandbox Code Playgroud)


And*_*y E 7

而不是实现两种禁用表单提交的方法,添加一个事件处理程序到表单的onsubmit,它将检查disabled按钮的属性:

myForm.onsubmit = function () { 
    if (myForm.mySubmit.disabled) 
        return false;
}
Run Code Online (Sandbox Code Playgroud)