如何禁止手工输入但允许扫码器输入
问题起因
最近项目中遇到了一个问题,需求是希望可以禁止键盘输入,只允许使用扫码器进行输入。这个问题如果是cs端软件实现起来相对容易写,可以根据接入的端口进行判断,但如果是usb就无能为力了。更何况我们是web程序呢。但是有问题就有解决的办法。
分析
扫码器和键盘输入有什么区别呢?从原理上讲是没有区别的,同样是模拟键盘的输入。但是,扫码器的输入速度比人的输入速度要快的多。于是就有了下面的代码
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>键盘输入测试</title><script>var keydownFirstTime = 0; function keyup(obj) { var date = new Date(); var nowTime = date.getTime();if (obj.value.length<2) {keydownFirstTime = nowTime; }if(nowTime-keydownFirstTime >500){obj.value='';}}</script></head><body>
<input onkeyup="keyup(this)"></body>
</html>
为什么是用onkeyup而不是用onkeydown检测,是因为只有键盘松开时输入内容才会进入input,如果用onkeydown每次都会有一个字符在里面。
当然也有其他办法解决这种问题。但我们希望用最简单快捷的方式去解决。于是选择了用onkeyup事件。
还有一个问题,如果用时是中文状态,输入一串内容最后回车也会。一次性输入很多的内容。这就需要进行其他处理,比如过滤中文字符。比如onkeydown和onkeyup组合处理。方式有很多,这里只记录一个简单的例子,提供一种思路。
如何禁止手工输入但允许扫码器输入相关推荐
- 获取USB扫码器输入
USB扫码器相当于键盘输入 重写onKeyDown方法监听输入 int count = 1; StringBuffer sb = new StringBuffer(); TextView tv;pub ...
- Android 连接蓝牙扫码器 无输入框
Android 的APP 需要集成一个蓝牙扫码器, 特别的是,需要扫码的地方是没有输入框的(EditText),不能通过直觉上理解的通过对EditText输入事件进行监听处理,取得扫码结果.并且设备也 ...
- 前端 获取 扫码枪等扫码设备输入内容:2种方式
方式一: 只有有输入焦点,扫码枪就可以把结果打印出来.其实就是相当于我们的键盘输入扫码枪会在打印完成后执行回车键.这样当页面不需要输入框没有焦点可以输入时,可以通过监听键盘事件来获取到扫码枪输入的内容 ...
- delphi XE模拟Android手机PDA设备的虚拟键盘按键及扫码过程输入焦点及信号接收
delphi XE模拟Android手机PDA设备的虚拟键盘按键及扫码过程输入焦点及信号接收 今天,群里有几位同学讨论这个问题,汇总了一下,分享出来,供同学们学习研究. 一.直接上代码示例 1.屏蔽应 ...
- vue 扫码枪 扫码墩 扫码器 中文输入影响 大小写影响 解决方案 js web端扫码枪对接 前端扫码枪 html扫码枪 vue扫码枪
# vue3 扫马枪/扫马墩/扫码器 中文输入影响 大小写影响 解决方式 ## ps 你们觉得好用的话,能不能给我点个赞啊
- 支付宝红包活动,怎么领呢?怎么输入数字和扫码呢?
支付宝红包活动,怎么领呢?怎么输入数字和扫码呢? 1.打开支付宝 2.在支付宝首页搜索上面输入数字:594097031 3.或者直接用支付宝扫码二维码也可 4.活动每天都可以领金额随机不等 二维码: ...
- 商品扫码器驱动如何设置 商品扫码器驱动设置步骤
商品扫码器驱动如何设置?商品扫码器驱动设置步骤,商品扫码器一般分为三种接口,分别为USB接口.串口和键盘口.只需要选择适合使用的接口,也就是说电脑或其他设备上有什么接口,就选择什么接口就对了,就大多数 ...
- 扫码器:壹码通(EMT 6621)二维码带多个回车换行处理
摘要:二维码运用越来越广泛了,目前在医院中一个二维码可以串联多个系统,二维码的内容也可以设置一些特殊字符去达成系统便捷性.本次遇到为二维码中开头内置了回车和空格,在程序判断为回车(KEY_ENTER) ...
- C#光功率计_扫码器导入excel
公司要求扫码器读入编码,然后光功率计取出数值,等完成后把两个数据导入excel 用了将近一个月 时间 以前在学校一直想学一款上位机的,但是C#,LABVIEW,QT,VC,deliphi 选择太多了 ...
最新文章
- PHP复制和移动目录
- 幽暗统领 树的重心 牛客白月赛44
- AJAX——注册新用户的重名提示
- kafka自动提交offset失败:Auto offset commit failed
- KVM安装、镜像创建(一)
- p怎么调用python的实例属性_Python中类的声明,使用,属性,实例属性,计算属性及继承,重写...
- 数据结构之图定义及相关概念
- ajax 入参为list_ajax向后台传递list参数
- 1 Oracle数据库环境搭建
- Luogu 1606 [USACO07FEB]白银莲花池Lilypad Pond
- matlab 2014a 安装教程(内附破解文件)
- num find matlab,matlab中find函数的使用说明
- 分布式基础-谁来当老大(二)
- i = i++, i = ++i, j = i++, j = ++i 的区别
- 简单聊聊PostgreSQL buffer与OS cache
- 被苹果“分手”后,英特尔华丽逆袭:新款酷睿 i9 碾压 M1 Max?
- 中文技术文档写作规范【转载】
- php job框架,GitHub - zanphp/job-server
- 如何合成gif动态图?教你一招快速合成动态gif图
- 图解 Docker 架构
热门文章
- 御用导航提示提醒_又现神操作!广西两车主开车走楼梯,车主:导航让我走的!...
- linux下ubuntu调分辨率,ubuntu修改屏幕分辨率
- Python分析万条数据,告诉你奔驰宝马奥迪谁更垃圾!快来学Python!!
- 分屏总屏计算机电缆,DJYPVP分屏+总屏蔽计算机电缆
- python趣味编程-数字益智游戏
- SPSS + AMOS 结构方程模型(SEM)
- nacos注册成windows服务,启动失败,注册表也改过了
- 酒吧会员卡小程序制作设计,酒吧小程序开发制作定制功能和解决方案_document.getElementById(“demo“).innerHTML
- 绿色数据中心案例介绍:阿里巴巴、华为、电信、移动……
- 微软文本转语音「免费网页版」