ElementUI的DateTimePicker组件添加验证规则以及限制选择范围

场景

DateTimePicker是ElementUI的日期和时间共存的选择器。

有时需要限制选择器的选择范围。

效果

实现

实现需要使用组件的picker-option属性,具体参照官方文档:

http://element-cn.eleme.io/#/zh-CN/component/datetime-picker#datetimepicker-ri-qi-shi-jian-xuan-ze-qi

picker-option是object类型。

Picker Options

 

参数说明类型可选值默认值
shortcuts设置快捷选项,需要传入 { text, onClick } 对象用法参考 demo 或下表Object[]
disabledDate设置禁用状态,参数为当前日期,要求返回 BooleanFunction
firstDayOfWeek周起始日Number1 到 77

注意disabledDate这个参数的使用,参数为当前日期,要求返回是Boolean,类型是Function。

举例

添加验证规则

控件显示:

<el-form-item label="支付截止日期:" prop="finalPayTime">
              <el-date-picker
                v-model="demandBid.finalPayTime" format="yyyy-MM-dd HH:mm"
                type="datetime"
                placeholder="支付截止日期" :picker-options="pickerOptions5">
</el-date-picker>

其中:picker-options="pickerOptions5" 所以在return中添加:

 pickerOptions5: {},

注意prop属性是 finalPayTime

在rules中添加验证规则:

  rules: {
          finalPayTime: [
            {required: true, message: '请选择支付截止日期'},
            {validator: checkFinalPayTime, trigger: 'blur' }
          ],

执行验证方法:checkFinalPayTime

在data中声明方法:

var checkFinalPayTime = (rule, value, callback) => {
        //var valueDate = moment(value).format('YYYY-MM-DD')
        if (new Date(value) > new Date(this.demandBid.goUpTime)) {
          return callback(new Error('支付截止日期必须早于去程起飞时间'));
        }else if(new Date(value) <new Date()){
          return callback(new Error('选择的支付截止日期无效'));
        }else{
          callback();
        }
      };

限制选择范围

在此页面的created方法中执行初始化时间控件的操作,即在加载完后就执行相应的方法。

export default {
    created() {
   
        this.initDateTimePicker(demandObj);
 
    },

如果有多个日期选择空间,则在initDateTimePicke方法中依次声明

 methods: {
      /**
       * 初始化日期控件配置
       * */
      initDateTimePicker(demandObj) {
        this.initGoUpTime(demandObj);
        this.initGoDownTime(demandObj);
        this.initReturnUpTime(demandObj);
        this.initReturnDownTime(demandObj);
        this.initFinalPayTime(demandObj);
        this.initFinalOutTicketTime(demandObj);
      },

这里以 this.initFinalPayTime(demandObj);为例

 /**
       * 支付截止日期控件配置
       * @param demandObj
       */
      initFinalPayTime(demandObj) {

        this.pickerOptions5 = Object.assign({}, this.pickerOptions5, {
          disabledDate: (time) => {
            if (demandObj.goStartTime != null && demandObj.goStartTime != undefined && demandObj.goStartTime != '') {
              if ( new Date(demandObj.goStartTime).getTime() > Date.now()) {
                return new Date(demandObj.goStartTime).getTime() < time.getTime() ||   new Date() > time.getTime() + 3600 * 1000 * 24;
              } else {
                return new Date() > time.getTime() + 3600 * 1000 * 24
              }
            } else {
              return new Date() > time.getTime() + 3600 * 1000 * 24
            }
          }
        })

      },

注意:

比较时间时要用getTime()来获取毫秒数比较。

要将字符床时间放在new Date()去转换为时间格式。

注意disabledDate返回是Boolean,即要选择当前时间之后,就要小于当前时间而不是大于。

在 time.getTime() + 3600 * 1000 * 24加一天是让当天可选。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: ElementUIdatetimepicker是一个日期时间选择组件,可以让用户方便地选择日期和时间。它支持多种日期时间格式,并且可以自定义日期时间范围。用户可以通过单击日期时间选择器中的日期和时间来选择日期和时间,也可以通过手动输入日期和时间来选择。此外,datetimepicker还支持快捷键选择日期和时间,例如按下“今天”按钮可以快速选择当前日期。 ### 回答2: Element UI 时间选择器(DateTimePicker组件是基于 Vue.js 的一个日期时间选择组件,能够快速地实现用户对日期时间的选择,并且具备高度的可定制性。 使用Element UI DateTimePicker 时间选择器,用户可以选择日期、时间(精确到秒)和时间范围等。此外,还能够选择不同的主题颜色,也能够针对不同的数据格式进行处理,以便更好地呈现数据。 DateTimePicker 时间选择组件具有良好的兼容性和可扩展性,支持 Vue.js 和 Element UI 等主流前端框架。在实际的应用场景中,其被广泛应用于各类网页端和移动端的表单中,为用户提供更加便捷的时间选择体验。 总的来说,Element UI DateTimePicker 时间选择器是一个非常实用、易用、可定制化和高效的组件,为开发者提供了一种简单、灵活、规范的时间选择组件方案。 ### 回答3: ElementUI 是一款基于 Vue.js 的前端框架。其中的 datetimepicker 组件可以用于选择时间和日期,提供了年、月、日、时、分、秒等多种选项,并且支持自定义时间格式以适应各种需求。 使用 datetimepicker 组件需要在 Vue 组件中引入 ElementUI 模块,然后在 HTML 中使用 datetimepicker 标签。在标签中可以设置一些属性来控制 datetimepicker 的表现,例如:默认展示时间、日期范围、时间格式等等。 datetimepicker 提供了多种选项供用户选择时间和日期。其中,可以单独选择年、月、日、时、分、秒,也可以一次性选择年月日时分秒,这取决于具体的使用情境和需求。在设置属性的时候,需要根据不同的需求来进行定制,以便让 datetimepicker 组件更加符合用户的实际需求。 与此同时,datetimepicker 还提供了时间格式的自定义功能,用户可以按照自己的要求设置各个时间部分之间的间隔符号,以及具体时间的格式,从而更好地适应各种需求。 总之,ElementUIdatetimepicker 组件提供了时间和日期选择的多种选项和自定义功能,可以帮助开发者快速实现日期和时间选择功能,满足各种实际需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

霸道流氓气质

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

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

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

打赏作者

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

抵扣说明:

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

余额充值