使用uni-app时,想对input输入框进行输入范围进行限制,如下:
<input type="password" v-model="password" @input="passwordFilter" />
passwordFilter:function (event) {
let value = event.target.value;
if(!value || value == " "){
return '';
}
//密码的输入规则是:字母、数字
const rule = /[^A-Za-z0-9]/g;
this.password = value.replace(rule,'');
}
但是实际运行之后,发现没有效果。应该是在@input设置的监听事件中,修改data中的v-model绑定的值不生效。
解决方法如下:
passwordFilter:function (event) {
let value = event.target.value;
if(!value || value == " "){
return '';
}
//密码的输入规则是:字母、数字
const rule = /[^A-Za-z0-9]/g;
this.$nextTick(function () {
this.password = value.replace(rule,'');
})
}
使用this.$nextTick进行异步更新。问题解决!