【问题标题】:Scanning a barcode with an ASCII control character into an input field将带有 ASCII 控制字符的条形码扫描到输入字段中
【发布时间】:2015-09-10 22:07:17
【问题描述】:

我需要将带有ASCII 29(组分隔符)的条形码扫描到HTML 输入字段中,并将所有组分隔符替换为|。当我首先将条形码扫描到Notepad++ 然后将其复制到输入字段时,以下 JavaScript 函数有效,但当条形码直接扫描到输入字段时无效。有什么问题?

var barcode = document.getElementById('barcode').value;
barcode = barcode.replace(new RegExp(String.fromCharCode(29), 'g'), '|');
alert(barcode);

【问题讨论】:

  • 可能是浏览器限制。您测试过哪些浏览器?
  • 在您扫描条形码并验证其中是否包含 ASCII 29 值后,您能否使用浏览器开发工具检查放入 html 输入字段的数据的值?
  • 我猜浏览器正在删除该输入字段中的控制代码。

标签: javascript html ascii barcode


【解决方案1】:

在我的 Symbol Tech 条码扫描仪上,字符作为击键发送。例如,组分隔符将模拟按住 left_control 键,然后发送右括号。您的浏览器将处理模拟的击键,就像您尝试使用 CTRL+] 作为快捷方式一样。

您可以使用 onkeydown 和 event.which 捕获此事件,如下所述: Firefox onkeydown detect pressed key

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    相关资源
    最近更新 更多