问题:
uniapp
微信小程序,苹果手机中文键盘状态下,输入字母时,不点击确定也不点击空白处,直接切换到下一个input
输入框,UI界面会保留上个输入框输入的内容,但input、blur
事件监听到的值都是空(ios多个机型复现)。
此时输入框并没有触发@input事件,但是输入框会触发
@blur
事件,虽然输入框内的值被保留下来了,但e.target.value是没值的。
解决办法:
在blur
回调时修改输入框v-model
的值,使组件重新渲染,清空UI界面上未确认的值。
html
<input type="text" v-model="inputVal" @blur="onBlur" />
js
methods:{
onBlur(e) {
let val = e.detail.value || ''
if (!val) {
this.inputVal = ' ';//此处注意是 空格+字符串
nextTick(() => {
this.inputVal = ''
})
}
}
}
nextTick
是必须的,需要等待第一次赋值渲染完成