在x个字符后提交表单

时间:2013-04-29 14:08:20

标签: jquery forms form-submit

我正在创建一个在我的工作中使用的简单工具,用于创建扫描的所有EAN代码的无序列表。到目前为止,我有一个工作表单,在输入字段中输入12个字符后自动提交。然而问题是我在我的工作中使用的扫描仪,一次不输入一个字符到输入字段,但它会立即将整串字符抛入字段。这样,12个字符后自动提交的功能不再起作用,因为它寻找一个keydown。

有没有可能让这项工作像我想要的那样?

这是我已经有效的jQuery。

 $(document).ready(function() {

$('#eanInput').keydown(function(){

    var vallength = $(this).val().length;

    if (vallength == 12){
        $('#eanForm').submit();
    }

});

$('#eanForm').on('submit', function(event){

    event.preventDefault();

    $('#eanList').append('<li>' + $('#eanInput').val() + '</li>');

    $('#eanInput').val('');

});    });    

当然是一个名为'eanForm'的简单形式,带有一个名为'eanInput'的输入字段和一个名为'eanList'的无序列表。

4 个答案:

答案 0 :(得分:1)

每次更改输入控件后都要检查:

$('#eanInput').bind('change paste input blur', function(){
    var vallength = $(this).val().length;
    if (vallength == 12){
        $('#eanForm').submit();
    }
});

答案 1 :(得分:1)

使用change事件,因为即使值发生更改,也会触发此事件。

$('#eanInput').change(function(){

    var vallength = $(this).val().length;

    if (vallength == 12){
        $('#eanForm').submit();
    }

});

答案 2 :(得分:1)

条形码扫描程序通常会触发 pasteinput事件

$('#eanInput').bind('paste input', function () {
});

如果这还不够,你还可以抓住几乎所有可用的事件来找到合适的事件:

$('#eanInput').bind('DOMAttrModified textInput input change keypress paste focus', function () {
});

在回答其他答案时, change事件将不会被触发,直到输入失去焦点。

答案 3 :(得分:0)

好吧所以我使用了Zakinster建议的整套事件,并且我将长度== 12改为长度&gt; = 12。现在它似乎像我想要的那样工作。

我要感谢大家的快速回复。你们这些人就是shiz。

&LT; 3