问题描述:
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: ""
}) }