收藏
回答

input 输入中文出现问题

问题模块
API和组件

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

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

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

  },




最后一次编辑于  2017-05-27
回答关注问题邀请回答
收藏

3 个回答

  • smoothie
    smoothie
    2017-05-31

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


    2017-05-31
    赞同
    回复
  • 深记Jenson
    深记Jenson
    2017-05-31

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

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


    2017-05-31
    赞同
    回复
  • maq
    maq
    2017-05-28
    bindinput + setData 逻辑上是个闭环,最好不要这么做吧……有什么必要吗?
    2017-05-28
    赞同
    回复