我的页面中有以下 javascript,它似乎不起作用。
$('form').bind("keypress", function(e) {
if (e.keyCode == 13) {
e.preventDefault();
return false;
}
});
我想禁用在输入时提交表单,或者更好的是,调用我的 ajax 表单提交。任何一种解决方案都是可以接受的,但我上面包含的代码不会阻止表单提交。
我的页面中有以下 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 事件添加到表单中也更安全。它也不起作用(不再?)仅将事件绑定到表单“名称”,但仅绑定到表单 id。因此,我通过适当地更改代码示例使这一点更加明显。
编辑 3:更改bind()
为on()
通常Enter当您关注输入元素时提交表单。
我们可以在表单中的输入元素上禁用Enter键(代码13
):
$('form input').on('keypress', function(e) {
return e.which !== 13;
});
更短:
$('myform').submit(function() {
return false;
});
$('form').keyup(function(e) {
return e.which !== 13
});
该event.which财产归event.keyCode和event.charCode。建议观看 event.which 进行键盘按键输入。
$(document).on('keyup keypress', 'form input[type="text"]', function(e) {
if(e.which == 13) {
e.preventDefault();
return false;
}
});
此解决方案适用于网站上的所有表单(也适用于使用 ajax 插入的表单),仅防止输入文本中的 Enter。把它放在一个文档就绪函数中,一辈子忘掉这个问题。