Vue中关于ElementUI表单验证整理

摘要:

Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可,如下:rules为验证规则,field为表单字段名。

<el-form :rules="rules">
    <el-form-item prop="field"></el-form-item>
</el-form>
使用方法
1.绑定
  • model:绑定对应需要校验的数据
  • rules:绑定校验规则
  • prop:绑定的表单字段名

prop的名称、表单字段名、校验规则名三者必须一致,否则校验不生效
: form: { name: ’ '}, rules: { name: ’ '}, prop=“name”

<el-form :model="form" :rules="rules">
    <el-form-item prop="name"></el-form-item>
</el-form>
 rules: {
        name: [
          { required: true, message: '请输入名称', trigger: 'blur' },
          { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
        ]
      },
 form: { name: '' }

rules绑定值的类型为Object,以键值对的形成出现,其中key为校验规则名(prop的名称、校验规则名),值则为校验规则数组

2.触发、重置、移除
<el-form :model="form" :rules="rules" ref="ruleForm">
    <el-form-item prop="name"></el-form-item>
</el-form>
<el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
// 触发校验
submitForm(formName) {
  this.$refs[formName].validate((valid) => {
     if (valid) {
       // 通过校验
     } else {
       // 未通过校验
       return false;
     }
   });
},
// 重置校验:对该表单项进行重置,将其值重置为初始值并移除校验结果
resetForm(formName) {
   this.$refs[formName].resetFields();
},
/**
 移除表单项的校验结果
 传入待移除的表单项的 prop 属性或者 prop 组成的数组,如不传则移除整个表单的校验结果
 */
clearFormName(formName,name,nameArray){
   this.$refs[formName].clearValidate();
   this.$refs[formName].clearValidate([name]);
   this.$refs[formName].clearValidate(nameArray);
}
3. 自定义校验规则
 data() {
    let checkPhone = (rule, value, callback) => {
      let reqPhone = /^1[3456789]\d{9}$/
      if (reqPhone.test(value)) {
        callback()
      } else {
        callback(new Error('手机号格式不正确!'))
      }
    }
    return {
      rules: {
        phone: [{ validator: checkPhone, trigger: 'blur' }]
      }
    }
  }

:自定义校验 callback 必须被调用。

  • 校验规则参数
类型描述
type标志要使用的validator的数据类型
required是否必填
message提示内容
trigger触发条件(change、blur)
min最小值
max最大值
len精准长度 (优先级高于min,max)
enum枚举中存在该值 (type必须为enum类型)
whitespace不能包含空白符
validator正则 (必须加 required: true)
  • type类型
type描述
string必须是 String 类型(默认值)
number必须是 Number类型
boolean必须是 Boolean类型
method必须是 Function类型
integer必须是 number 类型和整数
float必须是 number 类型和浮点数
array必须是 Array,由 isArray 确定的数组。.
object必须是Object 必须是类型而不是Array.isArray
date值必须有效Date
url必须是url 类型
hex必须是 hex类型
regexp必须是RegExp,在创建新RegExp时不生成异常的 实例 或 字符串
email值必须存在于 enum中
any可以是任何类型
参考地址
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值