我要制作POS系统。当使用条形码扫描仪时,它会将代码写入任何已聚焦的文本框中。
***如何避免这种情况。 换句话说,我想从后面获取条形码输入。用户已经专注于窗口,而无需在聚焦元素上写入。
我使用了http://a.kabachnik.info/jquery-scannerdetection-tutorial.html 我的尝试如下:
$(document).on('focus click', 'input', function(e){
var clickedEleID = $(this).attr('id');
$('#'+clickedEleID).unbind();//prevent other eval function trigger
$(document).scannerDetection({
timeBeforeScanTest: 100,
startChar: [120],
endChar: [13],
avgTimeByChar: 30,
onComplete: function(barcode, qty){
$('#item_barcode').val(barcode);//where the right place, barcode should be display
$('#'+clickedEleID).val(null);//focused element will clear
$('#'+clickedEleID).bind();//again bind the other eval
}
});
});
注意:条形码阅读器触发keyevent“13”。我的应用程序具有键事件“13”的功能,以向数据库添加帐单信息。所以我在这里添加
$( '#' + clickedEleID).unbind();
答案 0 :(得分:0)
您可以使用选项参数来控制此行为。
如果您不希望该值出现在任何文本框
,请使用此选项 ignoreIfFocusOn: 'input'
另一种方法是将类(类似'scannerOff'')添加到您想要忽略的所有输入字段,然后使用以下选项
ignoreIfFocusOn: '.scannerOff'