elementUI 日期插件同一个label下多个字段校验事件问题

问题描述

需求图片
上述图片中的代码如下:仅摘取部分代码

<el-form-item class="rate-date" label="指定时段" required>
            <el-col :span="4">
              <el-form-item prop="year">
                   <el-date-picker
                        v-model="form.year"
                        type="year"
                        :clearable="false"
                        value-format="yyyy"
                        placeholder="选择年"
                        :picker-options="pickerOptions">
                   </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col class="line" :span="2">-</el-col>
            <el-col :span="8">
              <el-form-item prop="startDate">
                 <el-date-picker type="date" placeholder="开始日期" value-format="yyyy-MM-dd"
                                v-model="form.startDate" style="width: 100%;"
                                :picker-options="datePickerOptions"
                ></el-date-picker>
              </el-form-item>
            </el-col>
            <el-col class="line" :span="2">-</el-col>
            <el-col :span="8">
              <el-form-item prop="endDate">
                  <el-date-picker type="date" placeholder="结束日期" value-format="yyyy-MM-dd"
                                v-model="form.endDate" style="width: 100%;"
                                :picker-options="datePickerOptions"
                ></el-date-picker>
              </el-form-item>
            </el-col>
          </el-form-item>

// 校验条件rules
rules: {
			year: [
                { type:"date",required: true, message: '请选择年份', trigger: 'change' }
            ],
            startDate: [
                {  type:"date",required: true, message: '请选择开始日期', trigger: 'change' }
            ],
            endDate: [
                {  type:"date",required: true, message: '请选择结束日期', trigger: 'change' }
            ]
}

当你需要在同一个label下需要放置1个以上的字段时(因为牵扯到校验问题,本次就默认几个都是必填字段),此时如果有其中一个字段没有填写,结果就是校验不通过,但是如果都正常填写后校验事件没有返回任何参数,也不往下走,此时校验结果valid根本打印不出来是true或者false,打断点也无效。

问题分析及解决

对比官网的demo

<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>
  // rules
  rules: {         
          date1: [
            { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
          ],
          date2: [
            { type: 'date', required: true, message: '请选择时间', trigger: 'change' }
          ],
   }

如果拿官网的栗子确实是没有问题的,但是换成我上门那些就还是有问题,那么到底是哪一步出现问题了呢?
如果是因为本地版本(v2.9)跟官网(v2.15)不一致?那么我拿着官网的栗子在本地应该也是无效的?那么就可以排除了版本问题?

点击确定后的事件从下图中可以看出其实校验事件也走了 ,因为除了type=date规则的三个字字段没有颜色,其他必填字段都是绿色的,说明其实是通过了。
在这里插入图片描述

经过一系列操作和测试,将rules规则中的三个字段的type: 'date’去除就是OK的,可是为什么官网的那个可以呢?求大佬解答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【拾光静好 微微一笑】

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值