欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js获取USB扫码枪数据的方法

程序员文章站 2022-08-06 20:10:19
本文实例为大家分享了js获取usb扫码枪数据的具体过程,供大家参考,具体内容如下废话不多说,直接上代码,这个方法避免了 首字缺失,字符串乱码等等问题,特别好用,记录一下中间的ajax可直接调用登录功能...

本文实例为大家分享了js获取usb扫码枪数据的具体过程,供大家参考,具体内容如下

废话不多说,直接上代码,这个方法避免了 首字缺失,字符串乱码等等问题,特别好用,记录一下

中间的ajax可直接调用登录功能,实现自动登录

说明:输入框需要获得焦点,这个是必须的,其次为了防止回车触发手动登录,需要添加οnkeypress="if(event.keycode==13) return false;"这个操作,这个在回车的时候,输入框焦点不会丢失,除非手动切换焦点,或者调用focus();方法

<div class="form-group">
 <label for="inputusernameemail">账号</label>
 <input type="text" placeholder="请输入账号" name="username" id="loginname" class="form-control" autofocus onkeypress="if(event.keycode==13) return false;">
</div>

代码:

<script>
  window.onload = (e)=> {
   this.start = new date().gettime()
   let code = ''
   let lasttime, nexttime
   let lastcode, nextcode
   let that = this
   window.document.onkeypress = function (e) {
    if (window.event) { // ie
     nextcode = e.keycode
    } else if (e.which) { // netscape/firefox/opera
     nextcode = e.which
    }
    console.log('nextcode', nextcode)
    if (e.which === 13 || window.event === 13) {
     var devicecode = code;
     console.log(code)
     console.log('扫码结束')
     console.timeend()
     code = ''
     lastcode = ''
     lasttime = ''
     $.ajax({
      cache: true,
      type: "post",
      url: rootpath + "/admin/login",
      data: {code: devicecode, type: 1},
      async: false,
      error: function (request) {
       $("#loginname").val("");
       $.modal.alerterror("系统错误");
      },
      success: function (data) {
       $("#loginname").val("");
       if (data.code == 200) {
        location.href = rootpath + '/admin/index';
       } else {
        $.modal.alerterror(data.msg);
       }
      }
     });
    }
    nexttime = new date().gettime()
    if (!lasttime && !lastcode) {
     console.log('扫码开始。。。')
     code += e.key
    }
    if (lastcode && lasttime && nexttime - lasttime > 500) { // 当扫码前有keypress事件时,防止首字缺失
     console.log('防止首字缺失。。。')
     code = e.key
    } else if (lastcode && lasttime) {
     console.log('扫码中。。。')
     code += e.key
    }
    lastcode = nextcode
    lasttime = nexttime
   }
  }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关标签: js USB 扫码枪