element ui中日期选择插件,带日期验证

上篇文章已经介绍了相关的按需引入组件的方法,这里不做多余赘述。
html部分:

el-form-item label="日期" class="ser_option2">
   <el-col :span="11">
   <el-form-item prop="startTime">
       <el-date-picker class="input" type="date" placeholder="开始日期" v-model="ruleForm.startTime" style="width: 100%;"
            :picker-options="startDatePicker"
            value-format="yyyy-MM-dd"
            format="yyyy-MM-dd"
       ></el-date-picker>
   </el-form-item>
   </el-col>
   <el-col class="line" :span="2">-</el-col>
   <el-col :span="11">
   <el-form-item prop="endTime">
       <el-date-picker class="input" type="date" placeholder="结束日期" v-model="ruleForm.endTime" style="width: 100%;"
           :picker-options="endDatePicker"
           value-format="yyyy-MM-dd"
           format="yyyy-MM-dd"
       ></el-date-picker>
   </el-form-item>
   </el-col>
</el-form-item>

js部分
picker-options的值是一个对象,他的disabledDate属性可以设置禁用日期,有一个参数是当前选择的日期,因此我们常用这个方法来进行日期范围的验证

// 开始时间限制
        beginDate(){
            const self = this
            return {
                disabledDate:time=>{
                    let endDateVal = new Date(self.ruleForm.endTime).getTime()
                    if (self.ruleForm.endTime) {  //如果结束时间不为空,则小于结束时间
                        return time.getTime()>Date.now(self.ruleForm.endTime)||time.getTime()>new Date(self.ruleForm.endTime).getTime()
                    }else{
                        return time.getTime()< new Date(self.ruleForm.endTime).getTime||time.getTime()>Date.now()||time.getTime()>Date.now(self.ruleForm.endTime)
                    }
                }
            }
        },
        // 结束时间限制
        processDate() {
            const  self = this
            return {
                disabledDate:time=> {
                    if (self.ruleForm.startTime) {  //如果开始时间不为空,则结束时间大于开始时间
                        return time.getTime()<new Date(self.ruleForm.startTime).getTime()||time.getTime()>Date.now()||time.getTime()>Date.now(self.ruleForm.startTime)
                        console.log(beginDateVal)
                    } 
                }
            }
        },

data部分:

 ruleForm: {
    startTime: '',
     endTime: '',
 },
 rules: {
     startTime: [
         { required: true, message: '请选择日期', trigger: 'change' }
     ],
     endTime: [
         { required: true, message: '请选择日期', trigger: 'change' }
     ],
 },
 startDatePicker: this.beginDate(),
 endDatePicker: this.processDate(),

另外,注意如果页面引用其他组件,命名的时候不要命名Date组件,不然你的Date对象就不能使用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值