laydate时间控件动态调整最大最小值

首先,声明这个控件
var start_opt = {
    elem : '#startTime',
    type : 'date',
    format : 'yyyy-MM-dd',
    show : true,
    done:function(value){
        $("#form-safety-inspect-${timestamp} #startTime").attr("data-value",value)
    }
};
var end_opt = {
    elem : '#endTime',
    type : 'date',
    format : 'yyyy-MM-dd',
    show : true,
    done:function(value){
        $("#form-safety-inspect-${timestamp} #endTime").attr("data-value",value)
    }
};

 

第二步,初始化

//初始化时间控件
lay(moduleId + ' .nyrsfm ').each(function(){
    console.info(this)
    let _this = this,
        str = _this.className,
        index = str .lastIndexOf("\ ");
    str  = str .substring(index + 1, str .length);
    if(str == "startTime"){
        $(moduleId + ' .'+str).attr('id', "startTime");
    }else {
        $(moduleId + ' .'+str).attr('id', "endTime");
    }
});

我的话使用的mel模版,所以是循环的两个控件(感觉可以更优化),单个的话可以自己按照自己的初始化

第三步,赋值

这个是我自己的逻辑,就是判断选择的学期开始时间是否小于当前的时间,如果小于那么最小时间就是当前时间
startTime = data.startTime;
if (minTime > startTime){
    console.info("时间最小")
    startTime = minTime
}
endTime = data.endTime;
//这个地方才是重点
$('#startTime').click(function() {
    if ($('#endTime').val() != '') {
        start_opt.max = $('#endTime').val();
    } else {
        delete start_opt.max;//这个必须加,否则后边的设置在页面上不会生效,即使你debug发现你的值已经赋值给组件了
        start_opt.min = startTime;
        start_opt.max = endTime;
    }
    laydate.render(start_opt);//渲染
});

最后:这个方法是在其他地方看到的,加了一些我自己的东西而已,时间有点久了不记得原文的链接了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值