van-form 组件的校验规则可以通过 rules 属性来设置,每个校验规则是一个对象,包含以下属性:

  • name:字段的名称,用于标识字段。
  • rules:字段的校验规则,是一个数组,每个元素是一个对象,包含以下属性:
    • required:是否必填,为 true 表示必填,为 false 表示非必填,默认为 false
    • message:校验失败时的提示信息。
    • validator:自定义校验函数,接收两个参数:字段的值和回调函数,通过调用回调函数传递校验结果,校验成功时调用 callback(),校验失败时调用 callback(false)

以下是一个示例:

<van-form :model="form" :rules="rules">
  <van-field v-model="form.name" name="name" label="姓名" />
  <van-field v-model="form.age" name="age" label="年龄" />
  <van-button type="primary" round @click="submit">提交</van-button>
</van-form>
export default {
  data() {
    return {
      form: {
        name: '',
        age: ''
      },
      rules: {
        name: [
          { required: true, message: '请输入姓名' },
          { validator: this.checkName }
        ],
        age: [
          { required: true, message: '请输入年龄' },
          { validator: this.checkAge }
        ]
      }
    };
  },
  methods: {
    checkName(value, callback) {
      if (value.trim() === '') {
        callback(false);
      } else {
        callback();
      }
    },
    checkAge(value, callback) {
      if (value === '') {
        callback(false);
      } else if (!/^\d+$/.test(value)) {
        callback('年龄必须为数字');
      } else {
        callback();
      }
    },
    submit() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          // 校验通过,执行提交操作
        } else {
          // 校验失败,显示错误提示
        }
      });
    }
  }
};

在上面的示例中,rules 对象中定义了两个字段的校验规则,其中 name 字段有两个校验规则:必填和自定义校验函数 checkNameage 字段也有两个校验规则:必填和自定义校验函数 checkAge。在 checkNamecheckAge 函数中,根据字段的值进行校验,通过调用回调函数传递校验结果。最后,在提交按钮的点击事件中,通过调用 validate 方法对表单进行校验,校验结果通过回调函数传递给外部

van-form 组件的校验规则:

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

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