element动态校验



<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/[email protected]/lib/index.js"></script>
<div id="app">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  <el-form-item label="活动名称" prop="name">
    <el-input v-model="ruleForm.name"></el-input>
  </el-form-item>
  <el-form-item label="活动区域" prop="region">
    <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
      <el-option label="区域一" value="shanghai"></el-option>
      <el-option label="区域二" value="beijing"></el-option>
    </el-select>
  </el-form-item>
  <el-form-item label="活动时间" required>
    <el-col :span="11">
      <el-form-item prop="date1">
        <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.date1" style="width: 100%;"></el-date-picker>
      </el-form-item>
    </el-col>
    <el-col class="line" :span="2">-</el-col>
    <el-col :span="11">
      <el-form-item prop="date2">
        <el-time-picker placeholder="选择时间" v-model="ruleForm.date2" style="width: 100%;"></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>
</div>

var Main = {
    data() {
      return {
        ruleForm: {
          name: ‘‘,
          region: ‘‘,
          date1: ‘‘,
          date2: ‘‘,
          delivery: false,
          type: [],
          resource: ‘‘,
          desc: ‘‘
        },
        rules: {
          name: [
            { required: true, message: ‘请输入活动名称‘, trigger: ‘blur‘ },
            { min: 3, max: 5, message: ‘长度在 3 到 5 个字符‘, trigger: ‘blur‘ }
          ],
          region: [
            { required: true, message: ‘请选择活动区域‘, trigger: ‘change‘ }
          ],
          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‘ }
          ],
          desc: [
            { required: true, message: ‘请填写活动形式‘, trigger: ‘blur‘ }
          ]
        }
      };
    },
  watch:{
//重点
    ‘ruleForm.delivery‘(newVal){
      console.log(newVal)
      this.rules.name[0].required = !newVal
     }
  },
    methods: {
      submitForm(formName) {
        this.$refs[formName].validate((valid) => {
          if (valid) {
            alert(‘submit!‘);
          } else {
            console.log(‘error submit!!‘);
            return false;
          }
        });
      },
      resetForm(formName) {
        this.$refs[formName].resetFields();
      }
    }
  }
var Ctor = Vue.extend(Main)
new Ctor().$mount(‘#app‘)

https://codepen.io/knighthanfei/pen/GRKazzB?editors=1111

原文地址:https://www.cnblogs.com/tangbuluo/p/11612373.html

时间: 2024-11-18 23:56:24

element动态校验的相关文章

215. Kth Largest Element in an Array

Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.For example,Given [3,2,1,5,6,4] and k = 2, return 5.Note:You may assume k is always valid, 1 ≤ k ≤ array's le

LeetCode OJ 162. Find Peak Element

A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ num[i+1], find a peak element and return its index. The array may contain multiple peaks, in that case return the index to any one of the peaks is fi

LeetCode(7): Majority Element

Majority Element: Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element always exist in the array. 题意:找出给定数组中的

[LeetCode]Majority Element

Given an array of size n, find the majority element. The majority element is the element that appears more than ? n/2 ? times. You may assume that the array is non-empty and the majority element always exist in the array. Credits: Special thanks to @

leetcode[169] Majority Element

在一个数组中找到主要的元素,也就是出现次数大于数组长度一半的元素. 我想到的方法是 1. 排序,然后扫描一次就知道了.总共nlgn 2. 哈希,记录每个次数,O(n)的时间和空间. class Solution { public: int majorityElement(vector<int> &num) { unordered_map<int, int> umap; for (int i = 0; i < num.size(); i++) { umap[num[i]

27. Remove Element【easy】

27. Remove Element[easy] Given an array and a value, remove all instances of that value in place and return the new length. Do not allocate extra space for another array, you must do this in place with constant memory. The order of elements can be ch

Bentley GeoStructural Finite Element Analysis(FEM) v17.00.33.00 1CD

Systat.PeakFit.v4.12.00 1CD Autodesk.CADDoctor.For.Autodesk.Simulation.v2015.Win64-ISO 1DVD Autodesk.Vault.Basic.v2015-ISO 1DVD Autodesk.Vault.Workgroup.v2015-ISO 1DVD Command.Digital.AutoHook.2015.v0.8.0.60.beta.1 1CD OmniCAD.v1.0.0.2125.for.Siemens

- Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead. 解决方案

<template> <div>{{hello}}</div> <button @click="addOne">add one</button> <button @click="minusOne">minus one</button> </template> 在*.vue组件里有这么一段. 报错信息: (Emitted value instead of an instan

EventTarge Node Docuement Element HTMLElement 关系

综述: 可以将其看做是依次继承的关系: Node Node A Node is an interface from which a number of DOM types inherit, and allows these various types to be treated (or tested) similarly(好几种dom类型都继承自node接口,这些dom类型对外会表现的很相似). The following interfaces(下面的这些接口都继承自Node的方法和属性,包括D