uniapp input获取扫描头条码不全问题
一、原因分析
input使用双向绑定,input标签loop事件循环获取文本过程中,读取信息不是顺序读取,如果条码中包含了回车键,还没有读取完所有文本,先读取到了回车,触发了相应的回车事件导致取到的条码不全。
二、问题及解决
问题:confirm回车事件先于 data属性值绑定,事件触发时,data值还没有完全绑定完成。
解决:在input标签中传递事件对象,通过事件直接获取值。
三、代码
<view class="input-control"> <text class="icon title"></text> <text class="title">|</text> <m-input class="m-input" type="text" clearable :focus="focusBill" v-model="billno" placeholder="请扫描/输入直通入库单号" @confirm="onScanNo($event)"></m-input> </view>
//扫描单号 onScanNo(e) { //取值 let barCode = e.target.value; //赋值给文本框 this.billno = barCode; this.setPageData({ rcvH: { billno: this.billno }, rcvD: null, rcvS: null }); uni.navigateTo({ url: './itemList' }); }