13

我有一个内部带有文本字段的表单,如果用户在选择文本字段时按下,我试图禁用浏览器提交整个表单时的默认行为Enter

$('#recaptcha_response_field').keydown(function(event) { if (event.keyCode == 13) {
     event.preventDefault();
     event.stopPropagation();
     event.stopImmediatePropagation();
     alert("You Press ENTER key");
     return false;
   } 
});

目前正在获取“您按 ENTER 键”并且默认行为未被覆盖。

4

5 回答 5

26

尝试这个:

$(document).on("keypress", 'form', function (e) {
    var code = e.keyCode || e.which;
    if (code == 13) {
        e.preventDefault();
        return false;
    }
});

这将阻止表单提交keypress

在这里演示

于 2013-04-17T14:22:36.090 回答
13

我发现了这个,它对我有用。

<input type="text" name="somename" id="someid" value="" onkeypress="return event.keyCode!=13">
于 2014-05-13T20:54:21.230 回答
8

防止脚本阻止其他元素(例如 textarea)上的 enter 键。将目标从“表单”更改为“输入”。

$(document).on("keypress", "input", function (e) {
    var code = e.keyCode || e.which;
    if (code == 13) {
        e.preventDefault();
        return false;
    }
});

于 2015-12-15T12:19:53.297 回答
3

如果上述解决方案都不适合您,并且您仍然在使用 javascript,为什么不使用按钮类型作为“按钮”<input type='button'>并使用 javascript 提交

$('#form_id').submit(); 
于 2013-04-17T14:50:27.260 回答
1

你可以使用这个脚本来防止整个输入。

<script type="text/javascript">
        $(document).on("keypress", 'form', function (e) {
            if (e.target.className.indexOf("allowEnter") == -1) {
                var code = e.keyCode || e.which;
                if (code == 13) {
                    e.preventDefault();
                    return false;
                }
            }
        });
    </script>

你把控件需要使用的类名输入

于 2013-08-27T09:58:10.327 回答