用jquery禁用表单回车提交

29 浏览
0 Comments

用jquery禁用表单回车提交

我在页面中使用了以下JavaScript代码,但似乎不起作用。

$('form').bind("keypress", function(e) {
  if (e.keyCode == 13) {               
    e.preventDefault();
    return false;
  }
});

我想禁用在回车键按下时提交表单,或者更好的方法是调用我的AJAX表单提交。任何一种解决方案都可以接受,但我包含的代码无法阻止表单提交。

admin 更改状态以发布 2023年5月24日
0
0 Comments

通常当你在输入元素上有焦点时,通过按下 Enter 来提交表单。

我们可以禁用表单内输入元素上的 Enter 键(代码 13):

$('form input').on('keypress', function(e) {
    return e.which !== 13;
});

示例: http://jsfiddle.net/bnx96/325/

0
0 Comments

如果 keyCode 没有被处理,捕捉 which:

$('#formid').on('keyup keypress', function(e) {
  var keyCode = e.keyCode || e.which;
  if (keyCode === 13) { 
    e.preventDefault();
    return false;
  }
});

编辑:错过了,最好使用 keyup 而不是 keypress

编辑2:在一些较新版本的 Firefox 中,表单提交没有被阻止,所以更安全的做法是将 keypress 事件添加到表单中。此外,它不再(或者说只能)将事件绑定到表单的 “name” 而是只能绑定到表单 id 上。因此,我通过相应更改代码示例来说明这一点。

编辑3:将 bind() 改为 on()

0