问题描述:
input输入框输入一段文字后,将光标移到文字中间,接着输入文字后光标又自动跳到最后去了。
原因:
input事件中,给input框绑定任何事件后,在处理事件时 setData之后就会让光标到最后。说白了就是数据发生更新导致光标跑到最后。
<input bindinput="sendText" confirm-type="send" value=‘{{sendVal}}‘ bindconfirm="send" />
bindinput : 键盘输入时触发
bindconfirm :点击完成按钮时触发
js文件中:
sendText: function (e) { var _This = this; _This.setData({ send_val: e.detail.value, }) },
解决思路:
设置两个值。sendVal 为 input 的value值,send_val 为暂时存储value值,sendText 方法负责将 e.detail.value 的值复制给 send_val
消息发送后将两个值都进行清空。
send : function (){ if (sendValue == "") { wx.showToast({ title: ‘不能发送空白信息‘ }) return false; } this.setData({ sendVal: "", send_val: "" }) }