在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。

这样,当用户输入密码后,再输入确认密码时,如果两次输入的密码不一致,会显示错误提示信息。

el-form-item 中如何联动校验

原文地址: http://www.cveoy.top/t/topic/iGhd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录