以前用时没这个问题的,今天突然出现这个问题,在开发中的两个应用都有这个 问题。
魅族自带的输入法,在输入拼音时候会在输入框先显示输入的拼音字符,
这个input输入框就把 这个input字符通过bindinput事件触发setData方法把value更新了,
换个输入法就没有问题
wxml:
<input bindinput=“inputing” type=“text” value="{{inputValue}}" confirm-type=“search” bindconfirm=“inputSubmit” placeholder=“输入搜索”/>
js:
data:{
inputValue:"",
}
inputing(e){
let that = this;
let value = e.detail.value
that.setData({inputValue:value});
},
是这样的,我发现weui这个插件也是这样写的,就这么搞了
原本是因为有一个清除输入的按钮所以把input属性上的value绑定上了inputValue值,
你这么一说,是可以用一个clearValue值绑定input的value值,在点击清除按钮时把值setData({clearValue:’’});
然后另外开一个值存放输入内容
data:{
inputValue:"",
clearValue:"",
},
inputing(e){
let that = this;
let value = e.detail.value
that.setData({inputValue:value});
if(value==""||!value){
that.setData({showClearBtn:false,inputValue:value});
}else{
that.setData({showClearBtn:true,inputValue:value});
}
},
btnClear(e){
let that = this;
that.setData({inputValue:"",clearValue:"",showClearBtn:false});
},
<input bindinput="inputing" type="text" value="{{clearValue}}" confirm-type="search" bindconfirm="inputSubmit" />
<view catchtap=“btnClear"class=“btn-clear” wx:if=”{{showClearBtn}}">X</view
但是这样又一个弊端,就是我每有一个输入框我就要用两个data值,一个用于清空,另一个用于存值,如果我的输入框很多那么要设置的data值就翻了一倍,对值的控制操作也翻一倍,用起来很繁琐也会出现纰漏的。
但是看来目前只能是这么处理了。