Javascript 如何防止enter键提交表单,但仍允许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键的默

我正在使用XOXCO标记输入

这是一个演示

因此,为了完成一个标记,我必须点击回车键,但当我点击回车键时,它会提交我的表单

我可以使用此代码禁用整个表单的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的答案