禁用输入提交

时间:2013-04-17 14:18:02

标签: javascript jquery html

我有一个带有文本字段的表单,如果用户在选择文本字段时按 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键”并且不会覆盖默认行为。

5 个答案:

答案 0 :(得分:22)

试试这个:

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

这会阻止在keypress

上提交表单

DEMO HERE

答案 1 :(得分:10)

我找到了这个,它对我有用。

<input type="text" name="somename" id="someid" value="" onkeypress="return event.keyCode!=13">

答案 2 :(得分:6)

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

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

答案 3 :(得分:3)

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

$('#form_id').submit(); 

答案 4 :(得分: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>

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