条形码或二维码扫描枪是一个输入工具,功能与键盘、鼠标相似,与键盘鼠标的区别是扫描枪从条形码或二维码中读取数据,键盘或鼠标需要手动录入数据。
一、使用扫描枪的常用场景是
1.使用扫描枪扫描录入数据,直接保存到后台系统
2.使用扫描枪扫描查询数据并显示出来
二、扫描枪在HTML页面中运用
1.在HTML中使用扫描枪必须有input或者其他输入框
2.在扫描枪进行扫描前,鼠标的焦点需要移动到相应的输入框中
3.扫描枪一般有自动带有enter键(在扫描完自动按下enter键)
三、扫描枪在页面中的使用设计
背景:页面中鼠标经常移动,不方便获取焦点,每一次扫描前需要移动,界面操作变得繁琐;为了解决此问题,以下设计,对使用扫描枪流程进行优化
1.页面加载是同时定位到需要输入框的并获取焦点,使用扫描枪直接即可录入数据
2.使用js监听键盘中的Ctrl键,按下Ctrl键,鼠标定位到需要输入框的并获取焦点
3.获取焦点同时,选择输入框的内容,如果输入框有内容,扫描枪录入数据直接覆盖之前的内容
4.监听输入框的值,扫描枪录入完毕,输入框值变化,同时触发将要执行的事件
5.事件执行完,鼠标重新定位到输入框,并选择输入框内容
四、运用例子
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>键盘按键监听测试</title> </head> <body> baody <input name="name" placeholder="name" /> <input id='birthday' name="birthday" placeholder="birthday" /> </body> </html> <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script type="text/javascript"> $("#birthday").focus(); function keyDown(e){ //IE内核浏览器 if (navigator.appName == 'Microsoft Internet Explorer'){ var keycode = event.keyCode; var realkey = String.fromCharCode(event.keyCode); }else {//非IE内核浏览器 var keycode = e.which; var realkey = String.fromCharCode(e.which); } // console.log('按键码:' + keycode + '字符: ' + realkey); //监听Ctrl键 if(keycode==17){ $("#birthday").focus(); $("#birthday").select(); } $("#birthday").change(function(){ console.log($(this).val()); $("#birthday").select(); }) } document.οnkeydοwn=keyDown; </script>