为什么我的Vue 3表单验证脚本非空校验规则不生效?
问题原因
你代码的核心问题是在formValidation方法中调用非空校验逻辑时,没有执行isNotEmpty方法,仅引用了方法本身。JS中方法作为对象的属性值本身属于真值,所以!this.isNotEmpty的结果永远为false,永远不会触发空字段的错误提示。
修正方案
只需要给isNotEmpty加上方法执行的括号即可:
formValidation() { this.formErrors = []; // 修正为执行isNotEmpty方法 if (!this.isNotEmpty()) { this.formErrors.push("There are empty filelds"); } if (!this.isEmail(this.formData.email)) { this.formErrors.push("The email is invalid"); } console.log(this.formErrors); }
额外隐藏问题
你代码中还有一处会触发报错的冗余逻辑:watch选项里的users监听回调中执行了this.users(),但users是你在data中定义的数组不是方法,这行代码会在你修改用户列表时抛出错误,建议直接删除这个没用的watch逻辑。
内容的提问来源于stack exchange,提问作者Razvan Zamfir
相关产品推荐
相关产品推荐

