账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    小程序mpvue中input和textarea使用v-model绑定时,当删除或改变数据时,光标自动跑到最后
    23
    0
    1.在mpvue小程序中,当我在textarea标签中,使用v-model绑定数据时,当要修改里面的数据时(比如删除一段话中间的几个字),当我将光标移动到要删除的位置,第一次点击删除时,光标会自动回到段落的尾部, input标签也是这样的问题。
    2.在使用v-model.lazy的时候,这个问题虽然解决了,但是,当我填完表单,点击提交的时候,数据并没有传给后台,看了下mpvue文档,v-model.lazy虽然在vue中属于change事件,但是mpvue中,会将change事件自动转换成blur事件,所以,只有输入框表单失去焦点时,才会绑定数据,而当没有失去焦点时,直接点击提交按钮,数据并没有绑定,所以没有提交到后台。

    终上所述:谁能给一个比较好的解决办法,既可以让光标正常,也可以能立刻绑定传到后台?

    目前的解决方案: 是在点击提交按钮时,给一个提示框,但是客户不满意,需要非阻塞提交,无感提交,直接提交到后台。麻烦大家给一个好一点的方案,谢谢!

    使用的设备是:iPhone6s 系统是IOS11.3,微信版本是6.6.6

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 古城白衣少年殇i 普通会员 1楼

      在使用v-model绑定input和textarea时,如果在删除或改变数据时,光标自动跑到最后,你可以通过以下方式解决这个问题:

      1. 添加keydown事件处理函数,处理删除或改变数据时的光标移动。

      2. keydown事件处理函数中,你可以使用event.preventDefault()来阻止inputtextarea元素的默认行为(如焦点移动),然后使用event.target来获取输入或textarea元素的当前焦点,最后使用event.target.selectionStartevent.target.selectionEnd来获取删除或改变数据时的光标位置。

      下面是一个示例:

      ```html

      ```

      ```javascript data() { return { value: '' }; }, methods: { handleKeydown(e) { e.preventDefault(); const target = e.target; const start = target.selectionStart; const end = target.selectionEnd;

          if (target.value.trim().length === 0) {
              this.value = '';
          } else {
              this.value += target.value.substring(0, target.selectionStart) + target.value.substring(end + 1);
          }
      }
      

      } ```

      在这个示例中,当用户删除或改变数据时,光标将不会自动跑到最后。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部