原因分析:

uniapp使用vue,双向绑定组件,在input标签loop事件循环获取文本的过程中,读取文本信息不是顺序读取,如果条码中包含了回车键,比如扫描枪,扫描文本后会追加回车键,监控文本读取还没有读取完所有文本,先读取到了回车,触发了相应的回车事件导致
关键点:confirm回车事件先于 data属性值绑定,事件触发时,data值还没有完全绑定完
关键代码:在input标签中传递事件对象,通过事件多谢直接获取值,此时值是完整的

BinderConfirm(e) {let binderCode = e.target.value// console.log(binderCode)this.tetsCode.binderText = this.tetsCode.binderText + "\n" + binderCodethis.blurfun();}
unBinderConfirm(e) {//获取文本框条码let text = e.target.value// this.barCode = e// console.log(text)this.tetsCode.unbinderText = this.tetsCode.unbinderText + "\n" + text}

解决方案

1.不使用双向绑定

uniapp使用vue,对于扫码后,数据的重置空,不使用绑定,很难操作,第一种方案的清空重置,在html5上可以使用,在打包apk后无法使用,相对不完美

2.使用双向绑定

相对第一种更方便对数据进行清理重置,比较符合不停扫码的场景

上代码,barcodeTest.vue

<template><view class="uni-common-mt"><view class="uni-padding-wrap"><view class="cu-form-group"><view class="title">未绑定2:</view><input class="input" type="text" :focus="tetsCode.isfocus2" @blur="tetsCode.isfocus2 = false" id="codeTest1" ref="inputCode" @confirm="unBinderConfirm($event)"></input></view><view class="uni-textarea" style="background-color: white;"><textarea v-model="tetsCode.unbinderText" style="color: black;" /></view><view class="tag-view panel-full margin-top"><uni-tag text="清空条码" type="success" @click="clearBarCode()" /></view><view class="tag-view panel-full margin-top"><uni-tag text="清空" type="success" @click="tetsCode.unbinderText = '未绑定文本:'" /></view><view class="cu-form-group"><view class="title" style="color: red;">双向绑定:</view><input ref="testBinderCode" v-model="tetsCode.binderCode" :focus="tetsCode.isfocus" @confirm="BinderConfirm($event)" class="input" type="text"name="codeTest2" style="color: red;" @blur="blurfun()"></input></view><view class="uni-textarea" style="background-color: white;"><textarea  v-model="tetsCode.binderText" style="color: red;" /></view><view class="tag-view panel-full margin-top"><uni-tag text="清空" type="success" @click="tetsCode.binderText = '双向绑定文本:'" /></view><view class="tag-view panel-full margin-top"><uni-tag text="清空绑定条码" type="success" @click="setValue2()" /></view><view class="cu-form-group"><view class="title" style="color: green;">主机名:</view><input v-model="tetsCode.host"  class="input" type="text" name="codeTest2"style="color: green;"></input></view><view class="tag-view panel-full margin-top"><uni-tag text="获取" type="error" @click="download3()" /></view></view></view></view>
</template><script>import permision from "@/common/js/permission.js"import uniTag from '@/components/uni-ui/uni-tag/uni-tag.vue';import UniIcons from '@/components/uni-ui/uni-icon/uni-icon.vue'import UniNumberBox from '@/components/uni-ui/uni-number-box/uni-number-box.vue'import uniIcon from '@/components/uni-icon/uni-icon.vue'import tTable from '@/components/t-table/t-table.vue';import tTh from '@/components/t-table/t-th.vue';import tTr from '@/components/t-table/t-tr.vue';import tTd from '@/components/t-table/t-td.vue';export default {components: {uniTag,UniIcons,UniNumberBox,uniIcon,tTable,tTh,tTr,tTd},onLoad(e) {},data() {return {tetsCode: {binderCode: "123",binderText: "双向绑定文本:",unbinderText: "未绑定文本:",host: "172.30.162.129",isfocus:true,isfocus2:false,barCode:"132"}}},onLoad() {//this.circleRodObjList = []},methods: {unBinderConfirm(e) {//获取文本框条码let text = e.target.value// this.barCode = e// console.log(text)this.tetsCode.unbinderText = this.tetsCode.unbinderText + "\n" + text},BinderConfirm(e) {let binderCode = e.target.value// console.log(binderCode)this.tetsCode.binderText = this.tetsCode.binderText + "\n" + binderCodethis.blurfun();},clearBarCode(){this.$refs.inputCode.valueSync = ""this.tetsCode.isfocus2 = true// this.barCode.target.text = ""// var obj = document.getElementById('codeTest1') ;// obj.outerText = ""// obj.focus()// obj.outerHTML="";// const query = uni.createSelectorQuery().in(this);// let select = query.select('#codeTest1')// select._component.$refs.inputCode.valueSync = ""// query.select('#codeTest1').boundingClientRect(data => {//   console.log(data)// }).exec();},download3() {let downUrl = "http://" + this.tetsCode.host + ":8088/webapp/service/apk/downloadLastFile2"plus.runtime.openURL(downUrl)},setValue(){let input = this.$refs['inputCode'];let value = input.valueSync// let value = "aaaa"+input.toString()// uni.showModal({//  title: "refs对象",//    duration: 1000,//   content: value,//   showCancel: false,//    success() {//       uni.hideLoading()//     }// })input.valueSync = ""// input.focus = true// var obj = document.getElementById("codeTest1");// obj.valueSync = ""// this.barCode = "";// var obj = document.getElementById('codeTest1') ;// obj.focus()// obj.value = ""},// onInput(e){//  // this.barCode.target.value = e.target.value// }setValue2(){this.tetsCode.binderCode = ""this.tetsCode.isfocus = true},blurfun(){this.tetsCode.isfocus = false}}}
</script>
<style>.uni-padding-wrap {width: 100%;padding: 0 20upx;}.uni-common-mt {width: 100%;}.cu-form-group {width: 100%;margin: 20upx 0;}.scroll-view_H {width: 200;display: flex;flex-wrap: nowrap;}.scrollx_items {text-align: center;display: inline-block;width: 210rpx;box-sizing: border-box;margin-left: 30rpx;margin-top: 3px;}.t-td {overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}.t-th {width: 180px;}.tap-button-text {color: darkcyan}.radio_mat {margin-left: 40upx;}
</style>

3.修改双向绑定策略,或者自己封装双向绑定组件解决问题,由于时间问题,暂未实现

uniapp 扫描枪获取条码不全解决办法,vue组件,使用双向绑定,回车事件触发,获取文本不全问题相关推荐

  1. java生成带星号条形码_Code39生成条形码加星号的解决办法以及当扫描枪扫描不到条码的解决办法 | 学步园...

    这里还是引用一段别人的代码: using System; using System.Collections; using System.ComponentModel; using System.Dra ...

  2. 0x8007007E 报错解决办法 OPC组件使用记录

    0x8007007E 报错解决办法 OPC组件使用记录 在Win10 中开发OPC客户端过程中,会在读取设备时出现下面组件缺失异常. Message=检索 COM 类工厂中 CLSID 为 {28E6 ...

  3. symbol扫描枪LI4278条码扫描自动换行设置

    问题与解决办法 出现的问题就是,我们在办公的时候要走来走去的扫描条码!且条码还要他自动换行(或者自动跳到下一个输入框).为此员工非常苦恼麻烦!!! 重新装了 系统还是一样的,之后我来查找原因:从设备开 ...

  4. wpf textbox 扫描枪 扫入条码 datagrid录入信息

    这个问题困扰我一天,我总是在扫描枪触发textbox的事件里搞不准,我也没上网看看别人是怎么解决的,总是一个人在那想啊想!试过了好多的方法,今天终于给解决了! 其实我就完成像类似超市条码扫描的那种功能 ...

  5. RuoYiConfig中加入自定义属性值获取不到解决办法?

    在群里看到有很多朋友在遇到这个问题,在这里给出对应的解决方法. 使用若依开源框架的时候,遇到这个问题,自定义属性值,获取不到值. 目录 一.问题复现 二.解决办法 一.问题复现 先在applicati ...

  6. word文档中插入图片显示不全解决办法

    在windows下写word文档,正常情况下,我们应该不会遇到插入图片显示不全的问题,好像是如果在已有的文档中插入图片,比如文档中间插入,图片没办法自动扩展空间,这就导致了显示不全的问题. 这个问题也 ...

  7. Linux命令行模式启动VMware时vmnet-dhcpd和vmnet-natd进程无法启动 VMware进程不全 解决办法

    问题:命令行模式安装完成VMware后,进程不全,vmnet没有启动 解决办法: 第一步:查看修改网络配置 vim /etc/sysconfig/network-scripts/ifcfg-ens33 ...

  8. 微信小程序苹果手机边框显示不全解决办法

    在实际开发中,微信小程序在真机测试的时候会出现边框不全的情况 发现是边框设置为1rpx,在一些手机上会转成0.5px,只要是小于1px显示都不正常.解决办法: 1.边框的设置写法1px 2.不设置边框 ...

  9. this.$refs 获取不到解决办法

    问题描述 页面一进来初始化之后,需要通过获取this.$refs 调用子组件中的某个方法,但是获取不到,返回undefind 解决过程: 楼主查询了原因,是这样解释的: ref 需要在dom渲染完成后 ...

最新文章

  1. 图像锐化算法(Image sharpening):拉普拉斯增强和Unsharp Masking(附代码)
  2. 【Python实例第13讲】识别手写数字
  3. 软件项目管理案例教程 第4版 课后习题答案
  4. PS学习笔记--去掉图片上不想要的部分
  5. 【渝粤题库】国家开放大学2021春2130药物治疗学题目
  6. Springboot+微信小程序自习室管理系统毕业设计源码221535
  7. AI测试|天猫精灵智能音箱测试策略与方法
  8. 西部世界科普时间:FIL将从4月15日开始减产? 谣言!
  9. C# TCP/IP通讯协议的整理(一)附带——基恩士扫码枪的使用
  10. adobe illustrator如何绘制箭头
  11. 股票自动交易软件的网格交易的优势?
  12. cesium里面能不能导入动画_cesium 添加动态 gif 图片
  13. 数据库连接异常: HikariPool-1 - Connection is not available, request timed out after 30000ms.
  14. Nginx环境搭建与搭建支持SSL的虚拟主机
  15. oracle如何查看pdb,Oracle基础操作——CDB-PDB
  16. 【笔记】小米电视屏蔽广告好评,亲测方法及相关设备参数
  17. 新浪微博登陆开发流程
  18. Log4j2漏洞复现(CVE-2021-44228)
  19. Array王锐大神力作:osg与PhysX结合系列内容——第3节 地形碰撞体
  20. 民法 不当得利vs无权占有

热门文章

  1. ARM64系统中兼容系统调用表compat_sys_call_table的定义和初始化
  2. metasploitable3 第一个flag, King of Diamond
  3. 如何判断一段程序是否是裸机程序?
  4. 求是量子产业观察:社交服务龙头腾讯务实推动量子计算
  5. html打印指定区域内容,js print打印网页指定区域内容
  6. JavaScript实现图片剪切效果
  7. 学习数据库事半功倍有诀窍
  8. 详解Math.round函数
  9. 沃尔玛社区店2019年第三季度销售额和客流双增长
  10. 公民信息黑产报价单曝光 网站成泄露隐私重灾区