如何防止输入密钥提交表单但仍然允许输入工作?

时间:2015-04-05 23:24:02

标签: javascript jquery forms

我正在使用XOXCO Tags-Input。

以下是演示http://xoxco.com/projects/code/tagsinput/example.html

因此,为了完成一个标签,我必须按Enter键,但是当我点击输入时,它会提交我的表单。

我可以使用此代码禁用整个表单的输入,但我无法完成标记。

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

所以我仍然需要进入工作,但我也需要它不提交表格,我不知道该怎么做。

3 个答案:

答案 0 :(得分:1)

您需要阻止输入的默认行为,即提交表单。例如......

$('#form').keypress(function(e){
    e.preventDefault(); // prevent form submission
    // do stuff with the keypress
    $('#form').submit(); // now, submit the form
});

答案 1 :(得分:0)

首先想到的是:

$('form').on('keypress keydown keyup', function(e) {
    if (e.which == 13) {
        //alert(e.which); 
        e.preventDefault();
        return false;
    }
});

https://jsfiddle.net/Lhujkub7/

答案 2 :(得分:0)

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

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