按键.显示的代码多于条形码扫描仪输出的代码
keyPress.which shows more codes than what barcode scanner outputs
当我在普通记事本中使用条形码扫描仪时,它会扫描这样的代码:2000000415369
。当我在HTML
中创建一个输入字段,并将焦点放在该字段中并扫描条形码时,它仍然会输出正确的代码。
现在,当我创建一个javascript侦听器来捕获代码时,为了确保在javascript中输入来自条形码扫描仪,keyPress event.which
字符串输出的字符比上面描述的要多得多。我在控制台输出中得到了这个:
0|5|0|2|0|4|8|0|0|4|8|0|0|4|8|0|0|4|8|0|0|4|8|0|0|4|8|0|0|5|2|4|0|4|9|1|0|5|3|5|0|5|1|3|0|5|4|6|0|5|7|9|
其中每个键代码都已更改为其键盘值。当您比较两个扫描的代码时,您会发现较长的扫描代码中包含正确的条形码。每个正确的字符由3个额外的数字分隔:
0502048004800480048000524104910535051305460579
有人知道这里发生了什么吗?我完全不明白为什么keyPress事件会捕捉到比输入字段更多的数字。我还用普通键盘进行了测试,输入只会导致正确的字符被输出到控制台。
以下是我用于捕获keyPress事件的javascript代码:
$(document.body).on('keypress',function(e){
aScannedEan.push(String.fromCharCode(e.which));
});
console.log(aScannedEan.join("|"));
我认为你应该试试这个
var current_keys = [];
var str='';
function checkKeyPress(event){
current_keys.push(event.keyCode);
setTimeout(interpret_keys, 500);
}
function interpret_keys (){
var keys = -1,key, i = 0;
for (i; i < current_keys.length; i++) {
key = current_keys[i] - 48;
if(key >= 0 && key <= 9) {
keys = '' + key;
str +=''+key;
}
}
keys = parseInt(keys);
current_keys = [];
checkKeyPress1(str);
}
<body onkeypress="return checkKeyPress(event)" >
在上面的代码中,我读取了用户按下的数字,并导航到该特定选项。希望这能有所帮助。
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 货币代码为欧元-金额的格式不应包含小数
- Regex代码只允许一个空格
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 从var向代码隐藏函数传递值
- 如何动态插入jquery代码
- 如何在php变量中嵌入JQuery代码
- 代码不会验证
- 如何从rails中的代码中删除新行( )
- Angularjs代码未在匿名函数中运行
- 如何做到这一点,使代码在不传递条件后执行函数
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 面向对象的Javascript代码在IE7中不起作用
- 将 jQuery 代码添加到 Index.aspx 页面
- 为什么忽略了eval()代码中的语法错误
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 按键.显示的代码多于条形码扫描仪输出的代码
- 使用ZXing条形码扫描仪将代码读取到网页上的表单中