小程序自定义弹出框中使用iview Weapp中的数字输入框组件InputNumber输入无效问题
项目场景:小程序出库功能,选择出库食材,输入出库金额。点击确定将该食材的信息以及出库数量进行存储。默认的出库数量显示当前所有的库存数量。数字输入采用ivew Weapp中的InputNumber组件问题描述:在微信开发者工具中进行调试,直接在input框中输入出库数量,然后点击确认。没有任何问题,真机上面调试直接输入一个出库数量,点击确定得到的出库数量依然是之前默认的当前的库存数量。手动输入的数字
·
项目场景:
小程序出库功能,选择出库食材,输入出库金额。点击确定将该食材的信息以及出库数量进行存储。默认的出库数量显示当前所有的库存数量。数字输入采用ivew Weapp中的InputNumber组件
问题描述:
在微信开发者工具中进行调试,直接在input框中输入出库数量,然后点击确认。没有任何问题,真机上面调试直接输入一个出库数量,点击确定得到的出库数量依然是之前默认的当前的库存数量。手动输入的数字没有任何效果。
原因分析:
因为InputNumber绑定的事件是失去焦点以后,将这个值传递出来。所以点击确定的时候,实际执行顺序是先执行了_confirmEvent()这个事件,此时输入的值还未进行改变。然后才执行的handleChange1这个文本值改变的监听事件。handleChange1: function(e) {
this.setData({
outQty1: e.detail.value
})
},
_confirmEvent:function(){
let that=this;
setTimeout(function () {
// //触发成功回调
that.triggerEvent("confirmEvent", {
qty1: that.data.outQty1,
qty2: that.data.outQty2
});
}, 20);
}
解决方案:
this.setData({
outQty1: e.detail.value
})
if(this.data.isFinished==false){
this.setData({
isFinished:true
})
this._confirmEvent();
}
_confirmEvent:function(){
let that=this;
if (that.data.isFinished==true){
setTimeout(function () {
// //触发成功回调
that.triggerEvent("confirmEvent", {
qty1: that.data.outQty1,
qty2: that.data.outQty2
});
}, 20);
}
}
更多推荐
已为社区贡献3条内容
所有评论(0)