element表单校验

本文详细介绍了如何使用Element UI库进行表单验证,包括基本的验证规则设置、自定义验证方法以及验证流程控制,帮助开发者实现高效且用户体验良好的前端表单验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
  <div>
    <h3><span class="ml20">创建活动</span></h3>
    <hr/>
    <div class="fromBox">
    <el-form ref="formLabelAlign" :rules="rule2" :label-position="labelPosition" label-width="80px" :model="formLabelAlign">
      <el-form-item label="名称" prop="name">
        <el-input v-model="formLabelAlign.name" autocomplete="off"></el-input>
      </el-form-item>
      <el-form-item label="活动区域" prop="align">
        <div class="block">
         <el-select v-model="formLabelAlign.value" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
          </el-option>
        </el-select>
        </div>
      </el-form-item>
      <el-form-item label="活动形式" prop="activity">
        <el-checkbox-group v-model="formLabelAlign.checkList">
          <el-checkbox  label="upper">线上活动</el-checkbox>
          <el-checkbox label="lower">线下活动</el-checkbox>
        </el-checkbox-group>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="onSubmit('formLabelAlign')">立即创建</el-button>
        <el-button>取消</el-button>
      </el-form-item>
    </el-form>
    </div>
  </div>
</template>
<script>
export default {
  name: 'Login',
  data(){

    var validateAlign = (rule, value, callback) => {
       if(!value){
          var sag = this.formLabelAlign.value==='';
          if(sag){
              return callback(new Error('请选择活动区域'));
          } 
         }
         return callback();
    }

    var validateActivity = (rule, value, callback) => {
      if(!value){
        var sag = this.formLabelAlign.checkList;
        if(sag.length==0){
            return callback(new Error('请选择活动形式'))
        }
      }
    }
    return{
       labelPosition: 'right',
       formLabelAlign: {
          name : '',
          value : '',
          checkList :['upper','lower']
       },   
        options: [{
          value: '1',
          label: '黄金糕'
        }, {
          value: '2',
          label: '双皮奶'
        }],
       rule2:{
         name:[
           { required: true, message: '请输入活动名称', trigger: 'blur' },
           { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
         ],
         align:[
           { validator: validateAlign, required:true, trigger:'blur' }
         ],
         activity:[
           { validator: validateActivity, required:true, trigger:'blur'}
         ]
       }
    };
  },
  methods: {
      handleChange(value) {
        console.log("触发事件");
        console.log(value);
      },
      onSubmit(formName){
        this.$refs[formName].validate(valid => {
          console.log("valid:" + valid);
        })
      }
  }

}
</script>
    
<style scoped>
.fromBox{ 
      width:400px;
      margin:0 auto;
    }
.ml20{
      margin-left: 20px;
}
hr{border-color: #fff; background: red;}
</style>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值