JS 无焦点获取扫码枪的数据

    var barcode = '';//初始化条码
    function dd() {
        var timestamp = 0;//初始化时间戳
        //var num = $('#num').val();
        $(document).on('keyup', function (e) {
            if ($(':focus').length > 0) {
                $(':focus').blur();
            }
            //时间戳设置初始值
            if (timestamp == 0) {
                timestamp = Date.parse(new Date());
            }
            e = e || event;
            //获取keyCode
            var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
            //回车事件处理 -> 扫描枪扫完条码后会自动执行一次回车事件
            if (keyCode == 13) {
                //根据最新时间戳和初始时间戳进行比对,得出时间差
                var newTimestamp = Date.parse(new Date()) - timestamp;
                //判断时间戳差值小于5000,并且条码长度必须大于等于9位
                alert(barcode);
                let str = barcode.replace(/\s*/g, "");
                if (newTimestamp < 7000 && str.length == 20) {
                    //条码扫描处理程序
                    valueCheck(str);
                } else {
                }
                //回车事件后,初始化时间戳
                timestamp = 0;
                var indexLeg = barcode.indexOf("ArrowDown");
                if (indexLeg >= 0) {
                    barcode = barcode.substring(9, barcode.length);
                }
                var result = barcode.split(",");

                if (result.length < 2) {
                    result = barcode.split(" ");
                }
                orderid = result[0];
                weight = result[1];
                //执行完条码处理后,清空条码
                barcode = '';
            } else {
                //扫码过程中,条码keyCode中会出现功能键码,因此需要屏蔽掉
                if (keyCode != 8 && keyCode != 9 && keyCode != 12 && keyCode != 16 && keyCode != 17 && keyCode != 18 && keyCode != 45 && keyCode != 116 && keyCode != 117 && keyCode != 118 && keyCode != 119 && keyCode != 120 && keyCode != 121 && keyCode != 122 && keyCode != 123) {
                    /*
                              * 屏蔽ctrl+c ctrl+v ctrl+y 等常用快捷键的录入
                              * if(!(e.ctrlKey && (e.keyCode === 67||e.keyCode === 86||e.keyCode === 89))){
                                     barcode+=e.key;
                                 }
                             */
                    barcode += e.key;
                }
            }
        });
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值