在uni-app中,input输入框的输入监听@input事件中,修改输入框内容不生效

使用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进行异步更新。问题解决!

猜你喜欢

转载自blog.csdn.net/hanshiying007/article/details/108308087