收藏
回答

IOS下使用bindinput事件,输入第一个字符后键盘就被收回了

问题模块
API和组件

iOS系统下,bindinput事件获取输入框值,每次只输入一个字符键盘就消失,需要重新打开键盘。

部分代码如下:

<view  wx:for="{{drugs}}" wx:key="id" wx:for-index="idx" >
//省略其余代码
<input  type="number" bindinput="iptNumChange" data-idx="{{idx}}"/>

</view>

iptNumChange: function (e) {

    let drugs = this.data.drugs
    let idx = e.currentTarget.dataset.idx
    drugs[idx].num = e.detail.value
    this.setData({
      drugs
    })
  }

当删除iptNumChange 事件中的setData()  后,键盘输入恢复正常。

请问怎么解决?


ps:我的程序中有其他页面bindinput中同样有调用setData(),但并没有出现输入一个字符后自动收起键盘的情况。

最后一次编辑于  2017-11-15  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • 红色星星
    红色星星
    2017-11-15

    我感觉应该就是这个问题,你仔细找找,看看wxml,看看是不是哪个data有变换,或者你现在循环的那段区域有data变换

    2017-11-15
    赞同
    回复
  • 浙江梧斯源微信小程序测试帐号
    浙江梧斯源微信小程序测试帐号
    2017-11-15

    尝试过把setData()中的drugs复制一份来循环,问题并没有解决。也尝试过setData()中的data不是drugs而换成另外任何data中有定义的参数,但只要iptNumChange 中存在setData()就会有问题......

    2017-11-15
    赞同
    回复
  • 红色星星
    红色星星
    2017-11-15

    有可能是

    this.setData({
          drugs

        })


    这个操作会导致页面重绘,你不要用drugs来循环或者换一个data来维护数据

    2017-11-15
    赞同
    回复