Several problems of element validation form

what is the prop of each form item? And the arrow function (rule, value, callback) how are these three parameters passed in? The example given does not understand at all

<el-form :model="ruleForm2" status-icon :rules="rules2" ref="ruleForm2" label-width="100px" class="demo-ruleForm">
  <el-form-item label="" prop="pass">
    <el-input type="password" v-model="ruleForm2.pass" autocomplete="off"></el-input>
  </el-form-item>
  <el-form-item label="" prop="checkPass">
    <el-input type="password" v-model="ruleForm2.checkPass" autocomplete="off"></el-input>
  </el-form-item>
  <el-form-item label="" prop="age">
    <el-input v-model.number="ruleForm2.age"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="submitForm("ruleForm2")"></el-button>
    <el-button @click="resetForm("ruleForm2")"></el-button>
  </el-form-item>
</el-form>
<script>
  export default {
    data() {
      var checkAge = (rule, value, callback) => {
        if (!value) {
          return callback(new Error(""));
        }
        setTimeout(() => {
          if (!Number.isInteger(value)) {
            callback(new Error(""));
          } else {
            if (value < 18) {
              callback(new Error("18"));
            } else {
              callback();
            }
          }
        }, 1000);
      };
      var validatePass = (rule, value, callback) => {
        if (value === "") {
          callback(new Error(""));
        } else {
          if (this.ruleForm2.checkPass !== "") {
            this.$refs.ruleForm2.validateField("checkPass");
          }
          callback();
        }
      };
      var validatePass2 = (rule, value, callback) => {
        if (value === "") {
          callback(new Error(""));
        } else if (value !== this.ruleForm2.pass) {
          callback(new Error("!"));
        } else {
          callback();
        }
      };
      return {
        ruleForm2: {
          pass: "",
          checkPass: "",
          age: ""
        },
        rules2: {
          pass: [
            { validator: validatePass, trigger: "blur" }
          ],
          checkPass: [
            { validator: validatePass2, trigger: "blur" }
          ],
          age: [
            { validator: checkAge, trigger: "blur" }
          ]
        }
      };
    },
    methods: {
      submitForm(formName) {
        this.$refs[formName].validate((valid) => {
          if (valid) {
            alert("submit!");
          } else {
            console.log("error submit!!");
            return false;
          }
        });
      },
      resetForm(formName) {
        this.$refs[formName].resetFields();
      }
    }
  }
</script>****
Sep.19,2021

prop form field model field. In the case of using validate and resetFields methods, this attribute is required (for form validation and assignment)
click on the example and modify it


for example, the pass attribute, how does it know to call the following validation instead of other validations?

  pass: [
    { validator: validatePass, trigger: 'blur' }
  ],

is via prop.

rule, value, callback, are usually used to get value (the form value of the corresponding item) and callback (passing no parameter means the verification is passed, but passing parameter Error means the verification is not passed)

Menu