我正在创建一个在我的工作中使用的简单工具,用于创建扫描的所有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'的无序列表。
答案 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)
条形码扫描程序通常会触发 paste
或input
事件:
$('#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