input 输入中文出现问题
发布于 5 年前 作者 lihou 14686 次浏览 来自 问答

以前用时没这个问题的,今天突然出现这个问题,在开发中的两个应用都有这个 问题。

魅族自带的输入法,在输入拼音时候会在输入框先显示输入的拼音字符,

这个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});

  },


3 回复

客户端已知问题,会通过patch方式修复

是这样的,我发现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值就翻了一倍,对值的控制操作也翻一倍,用起来很繁琐也会出现纰漏的。

但是看来目前只能是这么处理了。

bindinput + setData 逻辑上是个闭环,最好不要这么做吧……有什么必要吗?

回到顶部