输入框只允许扫码枪输入 |
您所在的位置:网站首页 › 扫码枪扫码录入表格教程 › 输入框只允许扫码枪输入 |
实现输入框只允许扫码枪输入。 首先要先了解扫码枪是怎么输入条码的。 本质:扫码枪扫码相当于是模拟键盘输入,即模拟输入框keydown、keyup事件。扫码结束后扫码枪会已"Enter"键结尾。(注:不同硬件设备可能会不一样,亲测有的扫码枪会以"Enter"结尾,有的没有"Enter",可能是设备不同或是硬件设置问题)。 现在我们需要判断人工输入与扫码枪输入,因为扫码枪输入是模拟键盘输入,扫码枪两次触发keydown、keyup事件时间间隔小于人工输入,所以我们可以给输入框设置keyup事件(这里不使用keydown事件是因为用户可能按住键盘不松),获取两次keyup的时间,判断时间间隔大于某个值即判定为人工输入,清空输入框。 CodeKeyUp () { // 设一个数组timearr[0,0],判断输入Code长度是奇数还是偶数,并将其时间存于timearr中 if (this.Code.length % 2 !== 0) { this.timearr[0] = new Date().getTime() } else { this.timearr[1] = new Date().getTime() } // 当输入第二位时判断两次输入的间隔,判断是否为手动输入,间隔过长清空值 if ( this.Codelength > 1 && Math.abs(this.timearr[1] - this.timearr[0]) > 40 ) { this.Code = ‘’ this.timearr = [0, 0] } } 这样就禁止了键盘输入,然后将输入框的粘贴功能禁用,防止用户直接粘贴输入。输入框设置paste事件,直接retuen false即可。 prohibit () { return false }, |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |