条码扫描器其实就是一种输入设备,跟键盘一样。在控制台打印扫描过程,可以看出,扫描过程就像是在键盘上敲击相应的键,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;

}

};

html5表单扫码录入,Javascript判断扫码枪的输入,以及扫码后提交表单数据相关推荐

  1. Word自带公式编辑器输入hat、bar后下表i,j显示不全问题

    Word自带公式编辑器输入hat.bar后下表i,j显示不全问题 解决方法将i,j转为普通文本,重新设置字体 效果如下:

  2. HTML提交弹出提交中,javascript – 从弹出窗口在父窗口中提交表单?

    您可以通过window.opener.document在父窗口中获取对表单的引用,如下所示: var form = window.opener.document.getElementById(&quo ...

  3. IDEA中Tomcat启动后提交表单,请求的资源[/servlet_demo2/book-add.html]不可用

    这个问题非常得刁钻啊,解决办法我很不理解,不知道IDEA为什么这么捉弄人. 首先这里出现问题有两个方面: 1.Tomcat问题: 配置Tomcat得时候非常不容易发现:这里得名字不一样,一个横杠,一个 ...

  4. html表单文本框怎么输出函数值,如何获取用户输入的html文本表单字段传递给javascript函数的值?...

    我想通过生成用户必须输入到文本输入表单字段的随机数创建我自己的反垃圾邮件过滤器,如果它是正确的,他们进入下一页,如果不是,则显示错误数字输入不正确.如何获取用户输入的html文本表单字段传递给java ...

  5. Jquery ajax提交表单几种方法详解

    [导读] 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的 ...

  6. php防止订单重复计算,php防止用户重复提交表单

    我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦. 效果图: 那 ...

  7. 如何防止用户重复提交表单

    我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦. 那么如何规避 ...

  8. java jquery提交表单_Jquery ajax提交表单几种方法

    在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$('#表单ID').serialize();就行了,下面我来介绍两个提交表单数据的方法. ...

  9. Jquery提交表单 Form.js官方插件介绍

    來源:http://hi.baidu.com/dereky/blog/item/f9e8ab64c52f4ff3f736540c.html [JQuery框架应用]:form.js官方插件介绍 For ...

最新文章

  1. Android 系统自动重启Bug(高通平台)
  2. oracle11g中用asmlib配置磁盘组,ASM学习笔记_配置ASMLIB磁盘组
  3. 低配,比又穷又忙更可怕
  4. 常见报错_mysql常见报错之SELECT list is not in GROUP BY clause
  5. 正点原子STM32F429阿波罗板,固件库工程搭建
  6. R语言报错:Error in scan
  7. 【经验分享】U盘软刷映泰TB250-BTC刷魔改BIOS上6789代CPU,另解决开机转一下后停止问题
  8. 个人征信系统机构接入工作流程
  9. 一步一图一代码,一定要让你真正彻底明白红黑树
  10. CS客户端单元测试(1) 开始
  11. 关于本科期间参加人工智能方向竞赛的建议
  12. 2021腾讯春季校招面经
  13. vmware 15.5.1 ubuntu 16.04 罗技无线鼠标 滚轮不能用
  14. 海康工业相机排雷笔记-01-分辨率设置
  15. 谷歌浏览器内核Cef js代码整理(二) 滚动条
  16. zuul 路由不生效_SpringCloud Zuul(Ribbon)重试配置不生效解决办法
  17. WEB入门三 CSS样式表基础
  18. Linux之yum阿里镜像
  19. Dubbo 提供者和消费者
  20. GPS 和 RTK 定位

热门文章

  1. 国密算法SM2加解密数据,解密出现异常
  2. 反面意见的运用(卓有成效的管理者)
  3. IntelliJ IDEA 常见图标
  4. 金蝶获取登录密码方式
  5. html5 iframe隐藏滚动条,教你在iframe标签中制作滚动条样式
  6. 信捷PLC C语言功能块与正规C语言用法的不同
  7. 由“中国回力鞋在欧美走红热销”想到的
  8. 【图像分类骨干网络】AlexNet
  9. word关闭时卡死_word页眉处理技巧:用VBA快速删除批量页眉页脚
  10. 潮玩力真火力!年轻人第一台巨幕影院?酷开电视Max 86“庞然来袭