vue input判断值是扫码枪还是键盘输入

uniapp在PDA手持终端扫码 阅读详情

        首先了解下为啥要做区分  :在浏览器端 我们没办法去控制 输入法为中文还是其他状态  这时候 如果在中文情况下我们用扫码枪去扫码可能就会偏离我们的预期  因为中文状态下  enter会用在把输入信息键入输入框而导致不会执行我们绑定的enter事件 (亲身经历 真的是各种找方案解决,有时输入时间差来判断的  有模拟输入框来判断的) 在尝试后  能满足的 也就输入时间差会靠谱些  

        扫码枪输入的时间间隔一般在8毫秒,偶尔会有16毫秒,而键盘输入一般都在80毫秒以上(大概范围),因此我设定当输入间隔小于等于40毫秒时,判断为扫码枪输入,这时候 我就切换输入框type类型为password类型 否则为text  然后在执行enter事件的时候又恢复为text  初始一下

这种方法有些不太靠谱 因为 你在监听是什么方式录入的时候 并没有打断键入新的值 所以在中文下拿到的值可能还是有问题  又实现了另一种方法监控另一篇文章 可以实现 非特殊字符的按键取值  实现扫码枪在中文输入法下扫码与实际差异的问题

实现流程 

template:

<input 
v-model="inputs" 
:type="isScanningGun?'password':'text'"  
 name="" 
id="inputs" 
 placeholder="请扫描条码"
  @keyup="keydownBarcode()"
 @keydown.enter="clickBarCode(inputs)" />

data:


            inputs: "", //条码扫码保存的数据
            timearr : [0,0],//扫条码记录间隔时长用来判断是不是扫码枪
            isScanningGun:false,//判断是否扫码枪

methods:


        
        /**
         * @title: 录入条码执行的事件
         * @description: 
         * @auther: 田保平
         * @param {String}} inputs 条码
         * @return {*}
         */
        clickBarCode(inputs) {
            //  先初始化输框为text
            this.isScanningGun=false
            //下面执行其他操作 
              ..........
        },
        keydownBarcode(){
                if(this.inputs.length%2 != 0 ){
                    //求余数不为0是奇数
                    this.timearr[0] = new Date().getTime();
                }else{
                    this.timearr[1] = new Date().getTime();
                }
                    //当输入第二位时判断两次输入的间隔,判断是否为手动输入,间隔过长就是手动
                if(this.inputs.length > 1 && Math.abs(this.timearr[1] - this.timearr[0])<40){
                    this.isScanningGun=true
                }
        },

VUE扫码枪中文输入法兼容自动回车事件(上) vue框架下面的扫码枪,针对windows+搜狗中文输入法兼容性问题处理方案 阅读详情

相关推荐

别再让搜狗输入法坑了你的扫码枪!一个input[type=password]的奇技淫巧搞定所有中文乱码

本文深入分析了扫码枪在中文输入法环境下出现乱码的技术原因,并提出了利用`<input type="password">`特性实现零误差采集的创新解决方案。通过密码框强制禁用输入法组合的特性,有效解决了搜狗、微软等输入法导致的字符丢失问题,适用于零售、仓储等行业的高效数据采集场景。

weixin_30505225的博客 586

uniapp监听扫码枪键盘事件|无输入框式监听

这篇文章,是纯借鉴下面这一篇文章的,感觉下面这一篇文章写的非常好一般的扫码枪通过USB或蓝牙连接手机或电脑,充当的是一个外接设备。当扫码后,扫码枪会自动识别内容,然后向连接的电脑或手机发送keydown或keyup。

hcy5201314521的博客 4753

在Simulink中进行基于模拟信号数字化处理的仿真

模拟信号数字化处理通常包括以下几个步骤:采样、量化、编码以及数字信号处理(如滤波、变换等)。Simulink提供了丰富的模块库,可以方便地实现这些步骤,并支持对整个系统的实时仿真与调试。首先明确你的系统需求,比如输入信号类型(正弦波、方波等)、采样率、需要执行的数字信号处理操作(低通滤波、频谱分析等)。假设我们需要处理一个50Hz的正弦波信号,采样率为1kHz,并希望对该信号进行低通滤波以去除高频噪声。本文介绍了如何在Simulink中进行基于模拟信号数字化处理的仿真。

xiaoheshang_123的博客 627

Vue获取扫码枪输入内容(可一定程度无视输入法)

Vue获取扫码枪输入内容(可一定程度无视输入法)背景环境前提方案一、隐藏密码框法代码测试优点缺点结果二、输入时间间隔法代码测试优点不足结果三、页面事件监听+输入事件间隔法代码调用组件方组件方测试优点不足结果 背景 WMS项目需要使用扫码枪,但当我输入法为中文输入法时,扫码枪输入会出现中文或者缺字母少数字的情况,尝试了不少方法,最终于找到了一种比较合适的解决办法。 环境 名称 内容 语言 Vue、ElementUI、Js 扫码枪 型号OBM-3802 前提 经过不停的扫码和观察,发现了

m0_46267097的博客 1万+

MATLAB语言的并发编程

并发编程是指在同一程序中同时执行多个计算任务。通过将任务分解为较小的子任务,程序可以利用多核处理器的优势,提高计算效率。并发编程与并行编程密切相关,但不完全相同。并行编程强调任务的同时执行,而并发编程则侧重于任务的调度与管理,即使某些任务并没有同时执行。MATLAB的并发编程为数据分析、科学计算等应用提供了强大的支持。通过使用parforparfevalspmd等工具,用户可以轻松实现高效的并行计算。尽管MATLAB的并发编程工具相对简单易用,但在实际应用中仍需关注数据共享、通信、错误处理等问题。

2501_90485575的博客 365

【测试】echo发送和接收TCP/UDP数据包|shell 发送TCP/UDP数据包

目录 通过/dev/tcp、/dev/udp shell给tcp或udp服务发送16进制报文指令 通过/dev/tcp、/dev/udp (https://blog.csdn.net/u010039418/article/details/86251470) 通过/dev/tcp、/dev/udp可以直接在shell脚本中发起tcp、udp连接,方便又高效,平时用于测试啥的还是挺方便的。 直接发送 格式 /dev/udp/ip/port 比如要向本地10001端口发送数据,可以使用 ec.

我的笔记本 1万+

Vue项目判断Enter回车事件是直接按键盘触发还是扫码枪触发

Vue项目判断Enter回车事件是直接按键盘触发还是扫码枪触发 原因叙述:我们知道键盘事件包括keyDown、keyPress和keyUp三个;然后扫码触发的Enter事件是很快的,一般在10毫秒左右,而直接按键盘触发的Enter相对来说比较慢80毫秒左右。在keyDown【按下】的时候,我们记录一个keyDownTime时间,在keyUp【弹起】的时候,我们又记录一个keyUpTime时间,之后两个相减小于30毫秒【keyUpTime-keyDownTime<30】,我们可以判断是扫码触发的还是直接

qq_32868369的博客 4299

DevEco Studio在初始化时出现Installing pnpm@8.13.1...npm ERR! code ETIMEDOUTnpm ERR! syscall connectnpm E

npm的仓库源设置的有问题,下载不了鸿蒙相关组件,所以你的启动依赖都没有,或者以前下载过npm,使用的源改的乱七八糟了。以前安装过前端相关的node.js的话,启动的时候记得使用管理远权限。(DevEco Studio)就出错,npm显示超时。

qq_56392862的博客 2629

python读取usb扫码枪数据_vue扫码枪input接收数据

1.使用场景vue 项目, 需要用扫码枪完成获取二维码中内容并进行处理的功能, 扫码枪就是普通那种,先找到一个有焦点的input,然后扫码枪工作,将扫描到的信息录入到input中,必须要有焦点。打开modal,后input自动聚焦,出现焦点(就是那个一闪一闪的杠杠)。点击其他位置的时候焦点丢失,然后立即回来,防止用户误点击后,再扫码,找不到焦点就得不到数据。2.代码title="订单详情"@can...

weixin_39899021的博客 1616

智能座舱测试工程师必看:从零搭建自动化测试框架的5个实战技巧

本文为智能座舱测试工程师提供从零搭建自动化测试框架的5个实战技巧,涵盖环境搭建、ADB高级应用、Python脚本工程化、Monkey测试优化及性能调优。通过ADB深度操作和Python脚本封装,帮助测试人员构建高可复用的智能座舱测试解决方案,显著提升测试效率与问题发现率。

python9snake的博客 637

2023年全国青少年信息素养大赛复赛真题(C++智能算法复赛真题:带解析)

2023年全国青少年信息素养大赛复赛真题(C++智能算法复赛真题:带解析)

王老师青少年编程 2114

vue对接扫码枪(vue)

vue对接扫码枪 因为公司的需求,需要接入扫码枪进入系统,所以有了这篇文章,我这边框架用的是是element ui的。 首先得解决怎么去触发提交到后台的问题,扫码枪只能扫描出条形码的内容,类似于触发键盘输入的效果,但是和普通的键盘输入又所区别的是,扫码枪每次扫描完之后,是会有一个回车的效果,所以我观察到element ui的表单里当只有一个intput输入框的时候,他是能够触发自动提交的事件的。 于是就有了一下代码 但是为了方便,我们需要能够让input输入框能够自动聚焦,可以实现连续的处理扫码,很方便的

wwh123963的博客 1万+

14、微电网控制方法与建模分析

本文详细探讨了微电网的控制方法与建模分析,包括逆变器的小信号状态空间模型、网络模型、负载模型及其组合形成的完整微电网模型。通过对系统特征值和灵敏度因子的分析,揭示了不同模式与系统参数之间的关系。文章还提出了多个研究问题,如岛式系统控制器设计、风力发电控制、并网变换器控制等,为微电网的稳定性分析和优化控制提供了理论支持和实践方向。

elastic6hunter的博客 126

扫码枪的使用

VUE element ui 使用扫码枪 <el-input v-model="sourceCode" @input="inputCode" :type="isScan?'password':'text'" placeholder="溯源码" /> data() { return { isScan: false,//是否为扫码枪录入 sourceCode: '' , } } methods openCodeListDialog(

jiemaio的博客 1314

2025年华为杯中国研究生数学建模竞赛E题 高速列车轴承智能故障诊断问题 思路+代码

all_data, file_info = preprocessor.load_mat_files(file_list[:50]) # 加载前50个文件作为示例。[y_source, y_source, domain_labels], # 注意:这里使用伪标签。X_target = np.random.randn(100, X_source.shape[1], 1) # 示例数据。"""构建CNN-Transformer混合模型""""""构建Transformer模型"""

YOLO 1047

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

js通过扫描枪快速扫码录入的功能实现(区分手动输入和扫码枪录入)-pc

扫码录入实践实践背景需要解决的问题代码实现最终代码结语 实践背景 在近期工作过程中接手了一个让我有些棘手的需求,需求如下: 输入框内支持扫码录入商品,且支持连续扫码录入。 相同输入框中支持手动输入条码录入商品。 页面任意位置用扫码枪扫码都可以成功定位到该输入框且录入对应商品。 需要解决的问题 事件注册在那里 事件注册什么时候注册,什么时候注销。 如何不影响页面上其他input元素 如何区分手动输入和扫码枪录入 代码实现 事件注册什么时候注册,什么时候注销 因为我们要注册的为全局事件,但是又不能影响

白开水丶 9734

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

web实现usb扫码枪读取二维码数据功能

通过上面介绍可以看出usb扫码枪虽然使用简单,但是限制多,只能满足一些特定场景,对用户一些不确定操作可能会影响读取成功率,这个时候也可以从产品设计上引导用户主动触发聚焦减少用户乱点击频率,提高成功率。

前端(全栈)、AI Agent开发技术分享 8288

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

el-input录入扫码枪数据引起的血案

今天在处理客户需求的时候,客户提出了一个严重性的问题,发现在el-dialog中嵌套el-form,在el-from中有个邮单编码是用扫码枪录入的,需求明确需要录入多条,但是由于我们开发时没有用扫码枪测试该功能,后来客户发现,每次只能录入一个,然后路由就跳转了,也不能提交数据。 如下图 扫码枪录入数据后 可以看到路由后面拼接了问号,想要调转路由。 我和我的小伙伴陷入了沉思。。。 ...

车联网开发的博客 1830

移动端如何在前端阻止input框获得焦点时手机键盘的弹出

在文章的开始,我先把我的目的说明一下:在移动端,如何在前端实现input框获得焦点的同时不会唤起手机键盘。 在做公司项目的时候遇到这样一个问题,因为项目需要在ubuntu、window、android端都可以执行,其中ubuntu环境下是没有键盘的,而且为了方便对输入的内容有所控制,我们用vue分别写了一个数字键盘和一个英文键盘,input框都用d...

DACBE的博客 2万+

pda扫描mysql,获取pda扫码枪 扫描的数据

1.扫码枪是模拟键盘输入的,输入一连串数字后加一个enter键。所以可以监听键盘事件。新建一个隐藏的 input 用来接收数据,不然扫码枪会自动获取页面存在的一个input的焦点,并将数据显示在input框中。type="text"v-model="myvalue"id="inputId"placeholder=""size="normal"clearableclass="inputShow"&g...

weixin_30245667的博客 789

vue项目中扫码枪收款

扫码枪会将扫到的数据带入到获取焦点的输入框中,并且触发输入框的enter回车事件 1.自动获取焦点 <el-input v-model="barCode" v-focus size="small" @keyup.enter.native="payCode" ></el-input> // 使用directives注册v-focus全局指令 ...

weixin_30783629的博客 4831

Vue 扫码枪或扫描仪获取数据到input框

扫描仪到输入过程中,通过控制键盘触发keyboardEvent事件,将数据输入到input框中,并在最后会触发一次Enter事件,所以最终我选择在input框的@keyup事件中对数据进行处理。自助机客户端插入硬件少扫描仪,需要扫描二维码或者条形码获取办件编号到input框。由于扫描数据输入过快,会导致数据丢失情况。方法二:页面事件监听+输入时间间隔法。

qq_45345113的博客 3181

扫码枪扫码后触发方法

扫码枪扫码后触发方法 先生成一个二维码,都知道二维码传递的信息就是一串字符,而扫码枪扫码后可以将二维码的信息自动输入至文本框。 再在html页面写一个input(textarea),input(textarea)用来接收二维码信息。 在js中写个ready事件,打开页面后input自动永久聚焦。(注意:引用jquery插件) <script type="text/javasc...

程序员之道 8503
上一篇: 微信公众平台测试帐号申请及Token验证地址提供
下一篇: 通过ngrok等内网映射到外网后 微信禁止访问的问题
起风了咦
博客等级 码龄7年 2粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值