Vue Element表单绑定(三)综合示例

一、Element UI表单绑定综合示例

1.template代码

<template>
  <el-form :model="ruleForm" :status-icon="true"  :rules="rules" ref="ruleForm" label-width="100px">
    <el-form-item label="活动名称" prop="name"
    :rules="[
    {required:true,message:'请输入名称'},
    {min:3,max:10,message:'长度3到5个字符',trigger:'blur'}
    ]">
      <el-input v-model="ruleForm.name"></el-input>
    </el-form-item>

    <el-form-item label="活动区域" prop="region"
    :rules="[
    {required:true,message:'请选择区域',trigger:'change'}
    ]">
      <el-select v-model="ruleForm.region" placheholder="请选择活动区域">
        <el-option label="区域一" value="shanghai"></el-option>
        <el-option label="区域二" value="beijing"></el-option>
      </el-select>
    </el-form-item>

    <el-form-item label="活动时间">
      <el-col :span="11">
        <el-form-item prop="date1">
          <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.date1"></el-date-picker>
        </el-form-item>
      </el-col>
      <el-col :span="2" class="line">-</el-col>
      <el-col :span="11">
        <el-form-item prop="date2">
          <el-time-picker type="fixed-time" placeholder="选择时间" v-model="ruleForm.date2"></el-time-picker>
        </el-form-item>
      </el-col>
    </el-form-item>

    <el-form-item label="即时配送" prop="delivery">
      <el-switch v-model="ruleForm.delivery"></el-switch>
    </el-form-item>
    <el-form-item label="活动性质" prop="type">
      <el-checkbox-group v-model="ruleForm.type">
        <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
        <el-checkbox label="递推果冻" name="type"></el-checkbox>
        <el-checkbox label="线下主题活动" name="type"></el-checkbox>
        <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
      </el-checkbox-group>
    </el-form-item>
    <el-form-item label="特殊资源" prop="resource">
      <el-radio-group v-model="ruleForm.resource">
        <el-radio label="线上品牌商赞助"></el-radio>
        <el-radio label="线下场地免费"></el-radio>
      </el-radio-group>
    </el-form-item>、
    <el-form-item label="活动形式" prop="desc">
      <el-input type="textarea" v-model="ruleForm.desc"></el-input>
    </el-form-item>

    <el-form-item>
      <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
      <el-button @click="resetForm('ruleForm')">重置</el-button>
    </el-form-item>
  </el-form>
</template>

2.js代码:

export default {
  data() {
    return {
      ruleForm: {},
      rules: {
          date1:[
              {type:'date',required:true,message:'请选择日期',trigger:'change'}
          ],
         date2:[
              {type:'date',required:true,message:'请选择日期',trigger:'change'}
          ],
          type:[
              {type:'array',required:true,message:'请至少选择一个活动性质',trigger:'change'}
          ],
          resource:[
              {required:true,message:'请选择活动资源',trigger:'change'}
          ]
      }
    };
  },
  methods: {
    //提交
    submitForm(formName) {
      this.$refs[formName].validate(valid => {
        if (valid) {
          alert("可以提交了");
        } else {
          return false;
        }
      });
    },
    //重置
    resetForm(formName){
        this.$refs[formName].resetFields();
    }
  }
};

 

验证效果:

 

更多:

Vue Element表单绑定(三)表单验证2

Vue Element表单绑定(二)表单验证1

Vue Element表单绑定(一)

转载于:https://my.oschina.net/tianma3798/blog/3010631

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Vue Element进行列渲染时,可以使用v-for指令遍历每个项,并给每个校验规则。具体步骤如下: 1. 在项中添加规则属性 在每个项中添加一个规则属性,用于存放该项的校验规则: ``` <el-form :model="form" :rules="rules" ref="form"> <el-form-item v-for="(item, index) in form.items" :key="index" :label="item.label" :prop="'items.' + index + '.value'" > <el-input v-model="item.value"></el-input> </el-form-item> </el-form> ``` 2. 义校验规则 在Vue实例中义校验规则,可以使用Element提供的校验规则,也可以自义校验规则。示例代码如下: ``` data() { return { form: { items: [ { label: '姓名', value: '' }, { label: '年龄', value: '' } ] }, rules: { items: [ { validator: this.validateName, trigger: 'blur' }, { validator: this.validateAge, trigger: 'blur' }, ] } } }, methods: { validateName(rule, value, callback) { if (!value) { callback(new Error('请输入姓名')); } else { callback(); } }, validateAge(rule, value, callback) { if (!value) { callback(new Error('请输入年龄')); } else if (!/^\d+$/.test(value)) { callback(new Error('年龄必须为数字')); } else if (value < 18 || value > 60) { callback(new Error('年龄必须在18-60之间')); } else { callback(); } } } ``` 3. 监听提交事件 在提交按钮的click事件中,调用的validate方法进行校验,如果校验通过,执行提交操作: ``` <el-button type="primary" @click="submitForm">提交</el-button> methods: { submitForm() { this.$refs.form.validate(valid => { if (valid) { // 校验通过,执行提交操作 } else { // 校验不通过,弹出错误提示 } }); } } ``` 以上步骤就是在Vue Element中遍历并使用校验的基本操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值