input 光标问题
发布于 6 年前 作者 luojie 14426 次浏览 来自 问答

根据radio选项拼接input的内容

在箭头处我需要输入一个字符,但是由于我使用bindinput,用来更新data中的数据,导致每次输入字符之后光标会跑到最后去,api提供的e.detail.cursor的执行逻辑会在更新data操作前,所以会被覆盖,请问有什么好的解决办法没?万分感激.

data:{
   inputX: ''
},
bindChange: function (e) {
    var me = this,
      id = e.currentTarget.id,
      val = e.detail.value,
      pos = e.detail.cursor;
    me.setData({
      inputX: val
    })
    return {
      value: val,
      cursor: pos
    }
},
 clearInput: function (e) {
    var me = this,
      id = e.currentTarget.id;
       me.setData({
          inputX: ""
        })
},
radioChange: function (e) {
    var id = e.currentTarget.id,
      me = this,
      val = e.detail.value;
    me.setData({
          inputX: me.data.inputX + val
        })
}
9 回复

请问解决了吗?

4楼的小伙伴,请问是怎么个解决思路呢?分开2个变量的话 那怎么能同一数据更改?

同遇到类似的问题,现在想要在input文字中间插入表情,

但是当选择表情后,由于光标自动跑到最后,表情无法加到光标中间,而是加到最后,请问有什么好的解决办法么?

解决方法是 定义在 value 的变量 和 setData 设置的变量不一样。 这样不干扰。

要是和 angular 那样可以绑定个 model 多好。这个太麻烦。

我也是用楼上这种方式避开了这个问题,但是这样根本不符合dom的数据绑定,每个input还得准备两个变量来控制

遇到了,光标会自动到最后

同遇到这个问题,求官方人员出来看一下。楼主,可以加 “bug” 标签。

没人遇到过类似问题吗?

回到顶部