输入框只允许扫码枪输入

您所在的位置:网站首页 扫码枪扫码录入表格教程 输入框只允许扫码枪输入

输入框只允许扫码枪输入

2024-07-07 21:24| 来源: 网络整理| 查看: 265

实现输入框只允许扫码枪输入。 首先要先了解扫码枪是怎么输入条码的。 本质:扫码枪扫码相当于是模拟键盘输入,即模拟输入框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