zoukankan      html  css  js  c++  java
  • element-ui时间选择器--设置禁止选择的时间

    场景需求:开始日期不能小于今天,在今天之前的日期禁止选择,结束日期不能小于开始日期,开始日期之前的日期禁止选择。

    效果图:

    element-ui的时间选择器中,有一个picker-options的属性,属性值中有个disabledDate可以设置禁用状态,类型为函数,参数为今天日期,通过返回Boolean值来确定日期是否可以选择。

    因此,开始日期可以通过picker-options这个属性去设置禁用选项:

    setStartDate(){
              let time = this.getDate()//把当天时间转化为yyyy-MM-dd格式的方法
              let self = this
              let obj = Object.assign({},this.startDateLimit,{
                disabledDate:function(date){
                  return self.getDate(date) < time
                }
              })
              return obj
            },
    ...

    当选择完开始日期后,开始选择结束日期了,这时可以通过已经选择的开始日期来设置结束日期的禁选项。

    在开始日期的选择器上绑定change事件,开始日期发生改变就可以立刻改变结束日期的禁选项。

    changeEnd(){
              //如果已经存在结束日期
              if(this.form.endDate){
                if(this.form.beginDate > this.form.endDate){
                  this.form.endDate = ''
                  this.$message.warning('结束日期小于开始日期,请重新选择')
                  return ;
                }
              }
    
              //如果结束日期尚未选择
              if(!this.form.beginDate){
                this.$message.warning('请先选择开始日期')
                this.endDateLimit = Object.assign({},this.endDateLimit,{
                  disabledDate:(date)=>{
                    return true
                  }
                })
              }else{
                let self = this
                this.endDateLimit = Object.assign({},this.endDateLimit,{
                  disabledDate:(date)=>{
                    return self.getDate(date) < this.form.beginDate
                  }
                })
              }
            },

    html代码:

     <el-date-picker
              size="mini"
              class="s-form"
              v-model="form.beginDate"
              type="date"
              @change="changeEnd"
              :picker-options="startDateLimit"
              clearable
              value-format="yyyy-MM-dd"
              placeholder="选择开始日期">
            </el-date-picker>
          -
            <el-date-picker
              v-model="form.endDate"
              class="s-form"
              :picker-options="endDateLimit"
              @focus="changeEnd"
              @change="setTime"
              type="date"
              clearable
              size="mini"
              value-format="yyyy-MM-dd"
              placeholder="选择结束日期">
            </el-date-picker>
  • 相关阅读:
    Angular与PHP之间的不同的请求方式(post/get)导致的传参问题
    项目当中会使用到的---获取主机名
    JavaScript eval() 函数
    PHP 数组排序
    PHP Switch 语句
    PHP strlen()函数和strpos()函数
    Array.prototype.map()和Array.prototypefilter()
    25.参考链接
    24.ArrayBuffer
    23.读懂 ECMAScript 规格
  • 原文地址:https://www.cnblogs.com/YuKiee/p/9651240.html
Copyright © 2011-2022 走看看