收藏
回答

多个输入框(input或textarea)的bindblur事件互相串扰。

问题模块
API和组件

比如页面里有若干个input、若干个textarea,并且统一绑定了同一个blur事件函数,

只是用各自的data-id传参来区别是哪个输入框的事件。


当在输入框里输入 123 并失去焦点。

此时会先后收到两个事件,e.target.dataset.id不一样,但e.detail.value都是123


每次重启小程序后,都重现此问题

iphone 6

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

7 个回答

  • C.Q.Q
    C.Q.Q
    2017-12-15

    换成逐个绑定吧

    2017-12-15
    赞同
    回复
  • 蜗牛
    蜗牛
    2017-12-15

    换成 bindinput 可以

    2017-12-15
    赞同
    回复
  • C.Q.Q
    C.Q.Q
    2017-12-15

    bindinput这个如果你去操作value内容的话会有兼容性问题。而且没办法解决的。

    2017-12-15
    赞同
    回复
  • 蜗牛
    蜗牛
    2017-12-15

    换成input事件数据不会错乱。

    但是多个输入框仍然有问题,上面的输入框输入123,下面的输入框自动显示123

    2017-12-15
    赞同
    回复
  • 蜗牛
    蜗牛
    2017-12-15

    想用blur或input事件是因为,我的表单value是先加载原来的值,然后手动在上面进行编辑,

    在编辑过程中,因为某些需要,要更新 this.data,但会导致表单整个被刷新成最初的值,所以想通过事件在中间过程中实时保存到this.data。

    2017-12-15
    赞同
    回复
  • C.Q.Q
    C.Q.Q
    2017-12-15

    那你就试试每个表单绑定自己的事件方法,不要公用。


    更何况,你更新data 不要全部更新的吧。

    2017-12-15
    赞同
    回复
  • 蜗牛
    蜗牛
    2017-12-15

    我试了把wxml里所有事件绑定删掉了,按理说data不会被更新了,都会有这个问题

    2017-12-15
    赞同
    回复