如何防止回车键提交表单,但仍然允许回车工作

How to prevent enter key from submitting a form but still allow enter to work?

本文关键字:回车 许回车 工作 何防止 提交 表单      更新时间:2023-09-26

我使用XOXCO标记输入。

这是一个演示http://xoxco.com/projects/code/tagsinput/example.html

所以为了完成一个标签,我必须点击回车,但当我点击回车时,它会提交我的表格。

我可以用这个代码禁用整个表单的回车,但我不能完成一个标记。

$("#form").keypress(function(e) {
    //Enter key
    if (e.which == 13) {
    return false;
    }
});

所以我仍然需要进入工作,但我也需要它不提交表格,我不知道如何做到这一点。

您需要防止回车键的默认行为,即提交表单。例如。。。

$('#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;
    }
});

https://jsfiddle.net/Lhujkub7/

好的,我解决了它,以防其他人遇到这个问题。

$('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;
        }
    });