elementUI From表单校验,整体校验和部分校验的使用方法

        我们在开发中,有势会接到一种关于表单验证的需求,在对整体表单验证的同时也希望对单个表单进行验证,虽然官网都有api,但是为了让大家更为直观,这里小杰为了更为直观的理解做了总结。

本次涉及到的核心点

validate(callback)参数为回调函数

validateField(arr,callback)第一个参数为数组,第二个参数为回调函数

--额外两个--

resetFields()表单重置,表单所有字段值重置为初始值,移除校验结果

clearValidate(arr/string)移除表单项的校验结果。他的参数是字符串或者数组,想移除那个就把prop值作为参数,多个就以数组形式

---------------------------------接下来我们进入正题----------------------------------

from表单

------表单随便写的不要在意格式,此次的目的是为了理解表单校验-----

<el-form
  status-icon
  :model='ruleFrom'
  :rules="rules"
   ref="ruleForm"
   style="width: 345px"
   class="demo-ruleForm">
  <el-form-item prop="user"  label="账户 :"> 
        <el-input
          placeholder="请输入账户"
          size="small"
          style="width: 200px"
          v-model="ruleFrom.user"
        ></el-input>  
        <el-button size="small" type="primary" @click="dd">校验</el-button>            
      </el-form-item>            
      <el-form-item prop="pass" label="密码 :">               
        <el-input
          placeholder="输入数字"
          size="small"
          style="width: 250px"
          v-model="ruleFrom.pass"
        ></el-input>                 
      </el-form-item>               
      <el-form-item>
        <el-button class="btn">取消</el-button>    
        <el-button class="btn" @click="submitForm">提交</el-button>            
          </el-form-item>  
</from>

一. 首先是创建校验规则

1. 表单验证

//trigger: "blur" 输入框失焦时触发校验
//required: true 输入框为空校验提示
rules: {
        user: [{ required: true, message: '请输入账户', trigger: "blur" }],
        pass: [{required: true, message: '请输入密码' ,trigger: "blur" },],
      },

2. 自定义校验规则

var validateuser = (rule, value, callback) => {
      if (value === "") {
        callback(new Error("账户为空"));
      } else if (!/^\d{4}$/.test(value)){
          callback(new Error("请输入正确的账户"));
      }
        callback();  
    };
var validatePass = (rule, value, callback) => {
      if (value === "") {
        callback(new Error("密码为空"));
      } else  if (!/\d/.test(value)) {
          callback(new Error("请输入正确密码"));
      }
        callback();
    };
 return {
    ruleFrom:{
        user: "",
        pass: "",
      },
 rules: {
    user: [{ validator: validateuser,trigger: "blur" }],
    pass: [{ validator: validatePass,trigger: "blur" },],
 },

注:这些操作都是在data()下进行的 

二、校验

1. 点击提交时,整体表单校验,validate方法 

//value 返回的是布尔值 true和false  
submitForm() {
  this.$refs.ruleForm.validate((value) => {
    console.log(value)
    });
  },

--------------校验效果如图所示-------------

①、表单为空时

②、表单不符合规则

③、表单部分不符合规则

 ④、表单校验成功

 2. 点击校验时,对部分表单校验,validateField方法,这里拿账户来举例

//validateField第一个参数是数组,里面就是我们要部分校验的表单
//validateField第二个参数是数组,valid返回的是表单验证错误时返回的提示语,vv返回的是个对象
dd() {
      this.$refs.ruleForm.validateField(["user"], (valid,vv) => {
        if(!valid){
          console.log("校验成功")
        }
      });
    },

----------校验效果如图所示------------

①、账户为空时 

 ②、账户不符合规则 

 ③、账户验证成功  valid返回的是空串,vv返回的是null

         最后,如果想在添加提交的时候也校验一下部分表单是否通过,可以加个开关然后在validate中多加一个开关判断就ok了,希望可以帮助到大家

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_JSJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值