Javascript 如何防止enter键提交表单,但仍允许enter键工作?
我正在使用XOXCO标记输入 这是一个演示 因此,为了完成一个标记,我必须点击回车键,但当我点击回车键时,它会提交我的表单 我可以使用此代码禁用整个表单的enter,但是我无法完成标记Javascript 如何防止enter键提交表单,但仍允许enter键工作?,javascript,jquery,forms,Javascript,Jquery,Forms,我正在使用XOXCO标记输入 这是一个演示 因此,为了完成一个标记,我必须点击回车键,但当我点击回车键时,它会提交我的表单 我可以使用此代码禁用整个表单的enter,但是我无法完成标记 $("#form").keypress(function(e) { //Enter key if (e.which == 13) { return false; } }); 因此,我仍然需要enter键才能工作,但我也需要它不提交表单,我不知道该如何做。您需要防止enter键的默
$("#form").keypress(function(e) {
//Enter key
if (e.which == 13) {
return false;
}
});
因此,我仍然需要enter键才能工作,但我也需要它不提交表单,我不知道该如何做。您需要防止enter键的默认行为,即提交表单。例如
$('#form').keypress(function(e){
e.preventDefault(); // prevent form submission
// do stuff with the keypress
$('#form').submit(); // now, submit the form
});
首先想到的是:
$('form').on('keypress keydown keyup', function(e) {
if (e.which == 13) {
//alert(e.which);
e.preventDefault();
return false;
}
});
好的,我解决了这个问题,以防其他人遇到这个问题。我就是这么做的
$('form input').keydown(function (e) {
if (e.keyCode == 13) {
var inputs = $(this).parents("form").eq(0).find(":input");
if (inputs[inputs.index(this) + 1] != null) {
inputs[inputs.index(this) + 1].focus();
}
e.preventDefault();
return false;
}
});
你是否有更好的解释我将如何做这件事。请稍后提交表格?您应该能够在函数中的任何位置调用$('#form').submit()手动提交表单。如果需要,我可以用这些细节更新我的答案。如果你能更新你的答案,那可能会有所帮助。你是对的!更新了工作示例。Cred找到了Dave Paroulek的答案