javascript - jquery禁用表单提交

标签 javascript jquery forms form-submit

我的页面中有以下 javascript,但似乎无法正常工作。

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

我想禁用在输入时提交表单,或者更好的是,调用我的 ajax 表单提交。任何一种解决方案都是可以接受的,但我上面包含的代码不会阻止表单提交。

最佳答案

如果 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 事件添加到表单也更安全。此外,仅将事件绑定(bind)到表单“名称”但仅绑定(bind)到表单 ID,它也不起作用(不再?)。因此,我通过适当更改代码示例使这一点更加明显。

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

关于javascript - jquery禁用表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11235622/

相关文章:

javascript - 我应该在删除 DOM 元素后调用 jQuery.off 吗?

javascript - 获取CSS过渡值

javascript - 在页面加载中运行函数 javascript 的最佳方式

python - 根据 django 中的条件提交带有帖子的表单

html - 使用 CSS 将所有 HTML 表单元素居中

javascript - 可以自动切换用户的键盘输入法吗?

Javascript 奇怪的点运算符语法

jQuery 选择器排除具有特定类的父级

javascript - RadioButtonList - 仅显示在文本框中键入的单选按钮

jquery - 表单重置后如何隐藏div?