element ui表单验证模板

在这里插入图片描述

在这里插入图片描述

    <!--  -->
    <el-form :model="dynamicValidateForm"
             ref="dynamicValidateForm"
             label-width="150px"
             class="demo-dynamic">
      <el-form-item v-for="(item, index) in dynamicValidateForm.domains"
                    :label="item.label"
                    :key="item.label"
                    :prop="'domains.' + index + '.'+item.value"
                    :rules="ruless[item.value]">
        <div v-bind="item.attrs"
             class="formInput"
             :is="item.type"
             v-model="item[item.value]"
             autocomplete="off">
          <div v-if="item.options">
            <el-option v-for='ite in item.options'
                       :key="ite.value"
                       :label="ite.label"
                       :value="ite.value">
            </el-option>
          </div>
        </div>
      </el-form-item>
      <el-form-item>
        <el-button type="primary"
                   @click="submitForm('dynamicValidateForm')">提交</el-button>
        <el-button @click="resetForm('dynamicValidateForm')">重置</el-button>
      </el-form-item>
    </el-form>
    <!-- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -->
      dynamicValidateForm: {
        domains: [
          {
            a: '',
            label: '合同编号:',
            type: 'el-input',
            value: 'a',
            attrs: { placeholder: '请输入合同编号' },
          },
          {
            b: '',
            label: '车皮号:',
            type: 'el-input',
            value: 'b',
            attrs: { placeholder: '请输入车皮号' },
          },
          {
            c: [],
            label: '要求交货日期:',
            type: 'el-date-picker',
            value: 'c',
            attrs: {
              format: 'yyyy年MM月DD日',
              'value-format': 'yyyy-MM-DD',
              'start-placeholder': '开始日期',
              'end-placeholder': '结束日期',
              'range-separator': '-',
              type: 'daterange',
            },
          },
          {
            d: '',
            label: 'd',
            label: '订单状态:',
            type: 'el-select',
            value: 'd',
            attrs: { placeholder: '请选择订单状态' },
            options: [
              {
                value: '-1',
                label: '全部',
              },
              {
                value: '0',
                label: '未发货',
              },
              {
                value: '1',
                label: '已在途',
              },
              {
                value: '2',
                label: '已完成',
              },
            ],
          },
        ],
      },
      ruless: {
        a: [
          { required: true, message: 'a不能为空', trigger: 'blur' },
          { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
        ],
        b: [{ required: true, message: 'b不能为空', trigger: 'blur' }],
        c: [{ required: true, message: 'c不能为空', trigger: 'blur' }],
        d: [{ required: true, message: 'd不能为空',trigger: ['blur', 'change']}],
      },
      ///
    submitForm(formName) {
      let newfrom = {}
      this.dynamicValidateForm.domains.map((item, index, arr) => {
        newfrom[item.value] = arr[index][item.value]
      })
      console.log(newfrom, '//')
      this.$refs[formName].validate((valid) => {
        if (valid) {
        } else {
          console.log('error submit!!')
          return false
        }
      })
    },
    resetForm(formName) {
      this.$refs[formName].resetFields()
    },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值