问题是这样的,页面上有一个输入框,输入购买数量,但是购买成功后,希望清空这个输入框:
问题:
清空框后,会自动提示验证错误信息,但是并不希望这样,改怎么处理呢?
如下:
<input type="text" name="quantity" v-validate="'required|qtyRule'" v-model.trim="qty" :placeholder="请输入购买数量">
如下代码模拟了用户操作:
this.qty = 10;//假设购买数量为10
setTimeout(() => {
this.qty = '';//购买成功提示,5s后清空购买数量
//测试如下方式清空错误,但是都不成功
//console.log(this.errors)
//console.log(this.$validator.errors)
//this.$validator.remove("quantity")
}, 5000);
补充:
感觉this.$validator
、this.errors
这些都是延迟对象吧,在调试的时候,this
、this.$validator
、this.errors
都返回undefined
,但是控制台却有输出!
找到了两种方式:
1、动态验证指令
这种方式缺点明显,依赖了变量,使得逻辑更为复杂(不利于维护);并且当,依赖的变量为false时,立马也会触发验证。
2、设置为空后,直接清除错误信息(不知道为什么,官网api都是clear(),而这个对象里面的方法确实clean())