使用ASCII控制字符扫描条形码到输入字段中

3
我需要使用 ASCII 29(组分隔符)扫描条形码到一个HTML输入框中,并将所有的组分隔符替换为|。以下JavaScript函数在我将条码先扫描到Notepad++,然后再将其复制到输入框时可以工作,但当直接将条码扫描到输入框中时就会出现问题。问题出在哪里?
var barcode = document.getElementById('barcode').value;
barcode = barcode.replace(new RegExp(String.fromCharCode(29), 'g'), '|');
alert(barcode);

可能是浏览器的限制。你测试过哪些浏览器? - Andrew Leach
你能否使用浏览器开发工具检查扫描条形码后放入HTML输入字段的数据值,并验证其中是否包含ASCII 29值? - Shane Wealti
2
我猜测浏览器正在剥离输入字段中的控制码。 - Shane Wealti
1个回答

1
在我的Symbol Tech条形码扫描仪上,字符被发送为按键。例如,组分隔符将模拟按住左控制键,然后发送右括号。您的浏览器将处理模拟的按键,就好像您正在尝试使用CTRL+]作为快捷方式一样。
您可以使用onkeydown和event.which来捕获此事件,如此处所述:Firefox onkeydown detect pressed key

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接