Vuelidate:内置验证器自定义消息及条件验证联动问题求助
Vuelidate:当条件不满足时跳过邮箱验证
我正在使用Vuelidate进行表单验证,需要结合内置验证器使用自定义消息,但当前代码未达到预期效果。
当前代码:
validations() { return { email: { requiredIf: requiredIf(() => { return this.data.enablevalidation; }), email: helpers.withMessage(this.data.validation_err_message, email), }, }; },
问题:当this.data.enablevalidation为false时,邮箱格式验证仍在执行;期望实现该条件不满足时,邮箱的所有验证都不生效,请问如何实现?
要实现条件不满足时跳过所有邮箱验证,你需要用helpers.when把邮箱格式验证器包裹起来,让它仅在enablevalidation为true时才生效。
修改后的代码如下:
validations() { return { email: { requiredIf: requiredIf(() => this.data.enablevalidation), email: helpers.when( () => this.data.enablevalidation, helpers.withMessage(this.data.validation_err_message, email) ) } }; }
说明:
helpers.when的第一个参数是条件判断函数,第二个参数是要执行的验证器逻辑- 只有当
this.data.enablevalidation为true时,邮箱格式验证才会触发;条件不满足时,该验证器会被直接跳过 - 保留
requiredIf验证器,确保条件满足时邮箱字段为必填项
内容的提问来源于stack exchange,提问作者kiran kumar
相关产品推荐
相关产品推荐

