el-form-item 中如何联动校验
在el-form-item中,可以通过设置prop属性来指定需要联动校验的表单项。prop属性的值应与el-form中的model中的属性名一致。
例如,有两个表单项需要联动校验,一个是输入密码的表单项,另一个是确认密码的表单项。可以设置两个el-form-item,分别设置prop属性为"password"和"confirmPassword"。然后在el-form-item中使用rules属性来设置校验规则。
示例代码如下:
<el-form :model="formData" :rules="rules">
<el-form-item label="密码" prop="password">
<el-input v-model="formData.password" type="password"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="confirmPassword">
<el-input v-model="formData.confirmPassword" type="password"></el-input>
</el-form-item>
</el-form>
data() {
return {
formData: {
password: '',
confirmPassword: ''
},
rules: {
password: [
{ required: true, message: '请输入密码', trigger: 'blur' }
],
confirmPassword: [
{ required: true, message: '请再次输入密码', trigger: 'blur' },
{ validator: this.validateConfirmPassword, trigger: 'blur' }
]
}
}
},
methods: {
validateConfirmPassword(rule, value, callback) {
if (value !== this.formData.password) {
callback(new Error('两次输入密码不一致'));
} else {
callback();
}
}
}
在上面的代码中,rules对象中的password和confirmPassword属性分别对应el-form-item中的prop属性。其中,confirmPassword属性的校验规则中使用了自定义的校验函数validateConfirmPassword。该函数会在blur事件触发时进行校验,如果两次输入的密码不一致,则会返回一个包含错误信息的Error对象,否则返回undefined。
这样,当用户输入密码后,再输入确认密码时,如果两次输入的密码不一致,会显示错误提示信息。
原文地址: http://www.cveoy.top/t/topic/iGhd 著作权归作者所有。请勿转载和采集!