Javascript判断扫码枪的输入,以及扫码后提交表单数据

条码扫描器其实就是一种输入设备,跟键盘一样。在控制台打印扫描过程,可以看出,扫描过程就像是在键盘上敲击相应的键,keycode和键盘是一一对应的,只是输入速度(间隔时间)比物理键盘输入要快得多。我们可以通过监听输入间隔时间,来判断到底是键盘输入还是扫描输入。

扫码枪输入的时间间隔一般在10毫秒以内,物理键盘输入要远大于这个数值,通常为80毫秒以上。因此,当输入间隔时间小于30毫秒时,判断为扫码枪输入,其余情况判断为键盘输入。
let lastTime = null;
let nextTime = null;
let code = '';
document.onkeydown = function (e) {
  let keycode = e.keyCode || e.which || e.charCode;
  nextTime = new Date();
  if (keycode === 13) {
    if (lastTime && (nextTime - lastTime < 30)) {
      // 扫码枪
      // do something
    } else {
      // 键盘
      // do something
    }
    code = '';
    lastTime = null;
    e.preventDefault();
  } else {
    if (!lastTime) {
      code = String.fromCharCode(keycode);
    } else {
      if (nextTime - lastTime < 30) {
        code += String.fromCharCode(keycode);
      } else {
        code = '';
      }
    }
    lastTime = nextTime;
  }
};

 转载:https://www.jianshu.com/p/3019858e3cad

转载于:https://www.cnblogs.com/huanhuan55/p/11465763.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用JavaScript编写扫码输入数据累加的代码非常简单。我们可以通过监听输入事件来获取扫码输入数据,并在每次输入时将数据累加到一起。 首先,需要在HTML文件中创建一个文本框和一个显示累加结果的元素,如下所示: ```html <input type="text" id="input" /> <p id="result"></p> ``` 然后,在JavaScript代码中获取输入框和结果显示元素的引用,并添加一个输入事件监听器: ```javascript const input = document.getElementById('input'); const result = document.getElementById('result'); let sum = 0; input.addEventListener('input', function(event) { const value = parseInt(event.target.value); if (!isNaN(value)) { sum += value; result.textContent = '累加结果:' + sum; } }); ``` 这段代码首先定义了一个变量`sum`来保存累加结果的值,并设置初始值为0。然后,使用`addEventListener`方法添加了一个输入事件监听器,在每次输入事件发生时调用匿名函数。 在匿名函数中,首先通过`event.target.value`获取输入的值,并使用`parseInt`将其转换为整数类型。然后,检查转换后的值是否为有效的数字,若是,将其累加到`sum`中,并更新结果显示元素的文本内容。 最后,将JavaScript代码放置在HTML文件的`<script></script>`标签中,或者将其保存为一个单独的`.js`文件并通过`<script src="script.js"></script>`的方式引入。 这样,当用户使用扫码输入数据时,累加结果会实时显示在页面上。 ### 回答2: 在JavaScript中,可以通过监听扫码输入事件来获取扫码输入数据,并进行累加操作。下面是一个简单的示例代码: ```javascript // 假设页面上有一个用于显示累加结果的文本框 var resultInput = document.getElementById('result'); // 初始化累加结果为0 var sum = 0; // 监听扫码输入事件 document.addEventListener('keydown', function(event) { // 获取键盘按下的字符 var char = String.fromCharCode(event.keyCode); // 判断是否为数字 if (/^\d$/.test(char)) { // 将输入的数字累加到结果上 sum += parseInt(char); // 更新文本框的值 resultInput.value = sum; } }); ``` 在上述代码中,我们通过addEventListener方法监听了keydown事件,当有键盘按键被按下时触发该事件。然后判断按下的键是否为数字,并将数字累加到sum变量中。最后更新显示累加结果的文本框的值。 这样,当你使用扫码输入数字时,脚本会将输入的数字累加起来,并实时更新在页面上。 ### 回答3: 使用JavaScript编写代码来实现扫码输入数据的累加非常简单。下面是一个示例代码: ```javascript // 初始化累加器 let sum = 0; // 监听扫码输入事件 document.addEventListener('keydown', function(event) { // 检查输入的键值是否为数字键 if (event.key >= '0' && event.key <= '9') { // 将输入的数字转换为整数,并累加到总和上 sum += parseInt(event.key); } }); // 输出累加结果 console.log('当前累加结果为:', sum); ``` 上述代码通过使用`document`对象的`addEventListener`方法来监听键盘按下事件,然后检查输入的键值是否为数字键。如果是数字键,则将输入的数字转换为整数,并累加到`sum`变量上。最后,通过`console.log`方法输出累加结果。 你可以将上述代码放在HTML文件中的`<script>`标签内,并在浏览器中运行该文件。然后,当你使用扫码扫描条形码时,输入的数字将被累加到`sum`变量上,并在控制台上显示累加结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值