elementui form-item中多个字段校验

本文介绍如何在ElementUI中使用时间选择器,并针对两个时间字段进行有效校验,提供两种方法:一是通过套用el-form-item实现,二是推荐的单一字段校验方式,确保时间范围正确。

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

preface

前两天 太忙了, 今天重新整理了下

需求

在这里插入图片描述

实现

方法一

再套一层 el-form-item 即可实现
外层的 * 号 可以通过 使用 elementUI 类名 或者 slot=label 来实现
弊端, 在数据校验的时候会有 bug

<!-- is-required 是直接使用了 elementui 中的 *, 也可以通过slot 自己添加 * -->
        <el-form-item class="is-required" label="固定时间段">
          <div class="add__coupon-pkg__duration-wrapper">
            <el-form-item prop="durationStart">
              <el-time-picker
                v-model="form.durationStart"
                range-separator="至"
                format="HH:mm"
                value-format="HH:mm"
                placeholder="开始时间"
                :picker-options="{format: 'HH:mm'}"
              ></el-time-picker>
            </el-form-item>
            <div class="add__coupon-pkg__duration-dash"></div>
            <el-form-item prop="durationEnd">
              <el-time-picker
                v-model="form.durationEnd"
                range-separator="至"
                format="HH:mm"
                value-format="HH:mm"
                placeholder="结束时间"
                :picker-options="{format: 'HH:mm'}"
              ></el-time-picker>
            </el-form-item>
            <!--    <div class="add__coupon-pkg__duration">
           
            </div>-->
          </div>
        </el-form-item>

方法二(推荐)

只对 durationStart 字段进行校验
在 durationStart 校验规则中对 durationEnd 进行校验

<el-form-item label="固定时间段" prop="durationStart">
          <div class="add__coupon-pkg__duration-wrapper">
            <div class="add__coupon-pkg__duration">
              <el-time-picker
                v-model="form.durationStart"
                range-separator="至"
                format="HH:mm"
                value-format="HH:mm"
                placeholder="开始时间"
                :picker-options="{format: 'HH:mm'}"
              ></el-time-picker>
            </div>
            <div class="add__coupon-pkg__duration-dash"></div>
            <div class="add__coupon-pkg__duration">
              <el-time-picker
                v-model="form.durationEnd"
                range-separator="至"
                format="HH:mm"
                value-format="HH:mm"
                placeholder="结束时间"
                :picker-options="{format: 'HH:mm'}"
              ></el-time-picker>
            </div>
          </div>
        </el-form-item>

rules 中 校验代码

  durationStart: [
          {
            required: true,
            validator: (rules, value, cb) => {
              let { durationEnd } = this.form;
              if (!value || !durationEnd) {
                return cb(new Error("固定时间段不能为空!"));
              }

              return cb();
            },
            trigger: "change"
          }
        ],

效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值