美文网首页
ElementUi form表单验证

ElementUi form表单验证

作者: _cxrs_ | 来源:发表于2020-08-31 21:24 被阅读0次
    在这里插入图片描述
    validator 是一个函数, 其中有三个参数 ( rule(当前规则),value(当前值),callback(回调函数))
    var  func = function (rule, value, callback) {
        // 根据value进行进行校验 
        // 如果一切ok  
        // 直接执行callback
        callback() // 一切ok 请继续
        // 如果不ok 
        callback(new Error("错误信息"))
    }
    
    <div class='login'>
          <!-- 使用elementUI组件 el-card -->
         <el-card class="login-card">
             <!-- 匿名插槽 -->
             <div  class='title'>
                 <img src="../../assets/img/logo_index.png" alt="">
             </div>
             <!-- 表单 => el-form包裹 -->
             <!-- 数据校验 => el-form绑定 model ,绑定rules规则 -->
             <el-form ref="myForm" :model="loginForm" :rules="loginRules" style="margin-top:20px">
                 <!-- 每一个表单域由一个 Form-Item 组件构成 -->
                 <!-- form-item  prop属性 绑定 下面表单组件的 字段名 -->
                 <el-form-item prop="mobile">
                     <!-- 表单域中可以放置各种类型的表单控件,包括 Input、Select、Checkbox、Radio、Switch、DatePicker、TimePicker -->
                     <!-- 手机号 绑定 v-model -->
                     <el-input v-model="loginForm.mobile" placeholder="请输入手机号"></el-input>
                 </el-form-item>
                 <el-form-item prop="code">
                     <!-- 验证码 -->
                     <el-input v-model="loginForm.code" placeholder="请输入验证码" style="width:65%"></el-input>
                     <!-- 发送验证码 -->
                     <el-button  style="float:right">发送验证码</el-button>
                 </el-form-item>
                 <el-form-item prop="agree">
                     <!-- 同意选项 -->
                     <el-checkbox v-model="loginForm.agree">我已阅读并同意用户协议和隐私条款</el-checkbox>
                 </el-form-item>
                  <el-form-item>
                      <!-- 登录按钮 -->
                      <!-- 注册点击事件 -->
                      <el-button @click="login"  type="primary" style="width:100%">登录</el-button>
                  </el-form-item>
             </el-form>
         </el-card>
      </div>
    
    export default {
      data () {
        let validator = function (rule, value, callBack) {
          // rule当前规则
          // value当前表单项的值
          // callback 回调函数
          // 正常写法
        //   if (value) {
        //     // 正确 勾选了协议
        //     callBack() // 一切OK请继续
        //   } else {
        //     // 不对 没勾选协议
        //     callBack(new Error('您必须同意无条件被我们蒙骗'))
        //   }
          value ? callBack() : callBack(new Error('您必须同意无条件被我们蒙骗')) // 炫技模式
        }
        return {
          // 表单数据 是一个对象
          loginForm: {
            mobile: '', // 手机号
            code: '', // 验证码
            agree: false // 是否同意协议
          },
          loginRules: {
            //   决定着校验规则  key(字段名):value(对象数组) => 一个对象就是一个校验规则
            // required 为true 就表示该字段必填 如果不填 就会提示消息
            mobile: [{ required: true, message: '请输入您的手机号' },
              { pattern: /^1[3456789]\d{9}$/, message: '请输入合法的手机号' }],
            code: [{ required: true, message: '请输入您的验证码' },
              { pattern: /^\d{6}$/, message: '验证码为6位数字' }],
            agree: [{ validator }]
          } // 登录规则集合对象
          // 自定义形式去校验
        }
      },
      methods: {
        login () {
          // 校验整个表单的规则
          // validate 是一个方法 => 方法中传入的一个函数 两个校验参数  是否校验成功/未校验成功的字段
          this.$refs.myForm.validate(function (isOK) {
            if (isOK) {
              console.log('校验成功')
            }
          })
        }
      }
    }
    

    相关文章

      网友评论

          本文标题:ElementUi form表单验证

          本文链接:https://www.haomeiwen.com/subject/ldbpsktx.html