【问题标题】:Reading a barcode with javascript用javascript读取条形码
【发布时间】:2020-01-27 01:23:04
【问题描述】:

我有一个条形码枪扫描仪读取条形码,当然,输入字段。目前,我可以读取条形码,但它会分别返回每个数字。我需要它作为一个完整的字符串。我一直在为此伤透了脑筋。

例如,我读取了一瓶水的条形码,输入字段正确捕获了数字(即 688267022760)。当我通过控制台记录它时,我会得到每个数字的独立实例。

我的模板 (VueJS) 在输入时触发扫描仪事件。我不完全确定这是否是正确的事件。我也尝试过 keydown 和 keyup 。不确定哪个是扫描枪的推荐事件侦听器。无论如何,这就是我的模板中的内容:

<input id="packageInput" type="text" @input="onBarcodeScanned" />

在我的脚本中:

onBarcodeScanned(barcode) {
  let numbers = barcode.data; //data is the object property I need
  console.log(numbers); //this shows me values I need
  let newarr = []; //creating an emprty array where I assume I need to push data to

  // looping through the data and pushing it to the new array, which does not do what I want but it was my logic
  for (var i = 0; i < numbers; i++) {
    newarr.push(numbers);
  }
},

期望的效果是在数组中获取这些独立值,然后作为字符串连接。

附言

读取条形码属性会返回一系列对象,其中包含用于多个功能的大量处理程序。感兴趣的财产是data。请参阅下面的条形码对象示例

我该怎么做?我被难住了

P.P.S 我了解扫描仪本身带有一系列编程说明。其中一些我不太了解。也许有一种条形码以字符串而不是每个数字作为对象返回?我使用的扫描仪是 Wasp CCDScanner WCS3900

【问题讨论】:

  • 您好,我正在努力解决同样的问题。你找到解决办法了吗?

标签: javascript arrays vue.js barcode barcode-scanner


【解决方案1】:

onInput 在每次值更改时运行。大多数条形码扫描仪将模拟按键以输入他们扫描的值,因此就您的应用程序所知,每个数字都是更改值的按键,因此它将每个数字报告为输入事件。输入事件的 data 属性只是输入中已更改的部分——因此您一次只能获得一个。

您需要一种方法来确定输入何时完成,而不是何时发生。我相信大多数条码扫描仪会在完整扫描完成后模拟按 ENTER 或 TAB,所以这可能是您想要检测的,不是通过输入事件,而是通过按键或按键事件。

【讨论】:

  • 这很有帮助。谢谢!
  • 这也可能有帮助:manualsbrain.com/en/manuals/1431653/?page=15 根据您特定扫描仪的手册,您可以使用手册该页上的条形码来设置“终止符”字符。我建议使用 CR,即回车(键码 13,或 Enter),但您可以选择任何您想要的。关键是你知道终止符是什么,你可以让你的应用检查那个onkeyup。
  • 我在手册中看到了。我添加了它,它在末尾注册了一个附加对象,其值为“Enter”。但是我仍然对如何收集其他值感到困惑。此“Enter”对象没有在对象的任何位置收集的值。嗯
猜你喜欢
  • 2023-04-08
  • 2012-01-27
  • 2013-06-24
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 2011-12-15
  • 1970-01-01
相关资源
最近更新 更多