我的页面中有以下javascript,它似乎不起作用。
$('form').bind("keypress", function(e) {
if (e.keyCode == 13) {
e.preventDefault();
return false;
}
});
我希望禁止在enter时提交表单,或者更好的做法是,将我的ajax表单称为submit。这两种解决方案都是可以接受的,但是我在上面包含的代码并不会阻止表单的提交。
发布于 2012-06-28 06:28:51
如果未捕获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的一些新版本中,表单提交不会被阻止,因此在表单中添加按键事件也会更安全。它也不能工作了(再也不能工作了?)只需将事件绑定到表单"name“,但仅绑定到表单id。因此,我通过适当地更改代码示例使这一点变得更加明显。
编辑3:将bind()
更改为on()
发布于 2012-12-08 04:41:17
甚至更短:
$('myform').submit(function() {
return false;
});
发布于 2014-05-30 20:32:33
$(document).on('keyup keypress', 'form input[type="text"]', function(e) {
if(e.which == 13) {
e.preventDefault();
return false;
}
});
此解决方案适用于网站上的所有表单(也适用于使用ajax插入的表单),防止仅在输入文本中输入。把它放在一个文档就绪的函数中,然后永远忘记这个问题。
https://stackoverflow.com/questions/11235622
复制相似问题