关于Jquery与扫码枪的那点事儿

废话不多说,直接上代码!

PS:前提,首先确定扫码枪扫码后的结束符,以回车结束。至于怎么设置,请咨询你的卖家!

约定:需要获取扫码枪结果的input的ID为keyWords,页面上其他的input或其他输入控件是有ID的

PS:敲黑板:页面上其他的input或其他输入控件是有ID的

$(function () {
        //keyword获得焦点
        $("#keyWords").focus();
        $(document).keyup(function(event){
            var val = $("#keyWords").val();
            //伪类 是否获得焦点判断
            var $focused = $(':focus');
            var eventCode = event.keyCode;
            if(eventCode ==13 && (val!=null && val!='')){
                //你的回车逻辑
                                test();
                return false;
            }
            /*排除其他特殊字符,只对数字、字母、逗号进行录入*/
            else if((eventCode >=48 && eventCode<= 57)||(eventCode >=65 && eventCode<= 90)||(eventCode ==102)){
                //如果keyWords获得焦点,那么输入值的时候就不进行操作。避免在输入值和输入汉字的时候出现字符重复
                //如果没有获得焦点,那么将扫码枪获得的值放到keyWords中
                var hasFocus = $('#keyWords').is(':focus');
                //在有多个input的情况下,其他input输入值后会将输入的值也放入keyWords中,这样我们就需要对其他可输入值的控件进行验证
                //获取当前获得焦点的控件ID
                var activeId = document.activeElement.id;
                console.log("当前控件的ID:"+activeId+" 当前控件的类型是:"+document.activeElement.tagName);
                if(!hasFocus && (activeId==null||activeId=='')){
                    $("#keyWords").val(val+event.key);
                }
                return true;
            }
        });
    });

如果你的页面上除了keyWords的input就没有其他的输入控件了,那么可以在你的回车业务后面加上让所有控件失去焦点,这样就不用去判断当前的获得焦点的ID了

//移除页面上所有控件的焦点事件(所有控件失去焦点)
        $("*").blur();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 原理 说明:项目中使用的是标准的扫码枪,标准的意思就是它都不给开发文档。走的标准“输入事件”,和外接键盘是一...
    瑟闻风倾阅读 17,274评论 10 11
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,538评论 1 11
  • Web网站测试流程和方法(转载) 1测试流程与方法 1.1测试流程 进行正式测试之前,应先确定如何开展测试,不可盲...
    夏了夏夏夏天阅读 1,319评论 0 0
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,510评论 0 17
  • HTML基础 本文包括 HTML基本知识与结构 HTML常见标签 标签写法与嵌套的讨论 HTML、CSS、java...
    廖少少阅读 2,121评论 2 21