请问各位,laydate改版后,两个input的时间范围怎么限制呢?

在之前的laydate中是用了choose这个方法,在上一个input执行choose后改变下一个input的min值,但是在改版之后,用done和ready一块达不到这种效果啊,加了判断也不行。贴上代码,求大神助

之前代码:

var start;var end;
    start = {
        elem: '#startDate',
        format: 'yyyy-MM-dd',
        istime: false,
        theme: '#4d99cf',
        istoday: true,
        choose: function (datas) {
            end.min = datas; //开始日选好后,重置结束日的最小日期
            end.start = datas; //将结束日的初始值设定为开始日
            console.log(end)
        }
    };
    end = {
        elem: '#endDate',
        format: 'yyyy-MM-dd',
        max: '2099-06-16 23:59:59',
        istime: false,
        istoday: true,
        theme: '#4d99cf',
        choose: function (datas) {
            console.log(end)
            start.max = datas; //结束日选好后,重置开始日的最大日期
        }
    };
    if ($("#startDate")[0]) {
        laydate.(start);
        laydate.(end);
    }

改版后laydate加载要使用render,我在第一个done后又加了一个render(end)的方法,并没有执行,所以是不是render方法在页面中只能执行一次呢?

阅读 6.5k
4 个回答

layDate 5.0.2 的写法:

var start;var end;
    start = {
        elem: '#startDate',
        format: 'yyyy-MM-dd',
        istime: false,
        theme: '#4d99cf',
        istoday: true,
        done: function (value,dat) {
                date.month = date.month !== 1 ? date.month - 1 : (date.year--, 12);//月份修正
                end.config.min = date;//开始日选好后,重置结束日的最小日期
                end.config.value = value;//将结束日的初始值设定为开始日
        }
    };
    end = {
        elem: '#endDate',
        format: 'yyyy-MM-dd',
        max: '2099-06-16 23:59:59',
        istime: false,
        istoday: true,
        theme: '#4d99cf',
        done: function (value,date) {
            console.log(end)
           
        }
    };
    if ($("#startDate")[0]) {
        laydate.render(start);
        laydate.render(end);
    }

render在页面上可以执行多次,你可以把你的代码都贴出来看看,这样也看不出来那有错误

这个问题,之前有个朋友已经给出了答案,我也采纳了,不知道为什么答案没有了。现在我贴出来,如那位朋友看见了说一下~

   //开始时间时间
    var start = laydate.render({
        elem: '#beginTime',
        min: '1900-1-1 00:00:00',
        max: '2099-6-16 23:59:59',
        trigger: 'click', //采用click弹出
        done: function (value, date, endDate) {
            end.config.min = {
                year: date.year,
                month: date.month - 1,
                date: date.date,
                hours: date.hours,
                minutes: date.minutes,
                seconds: date.seconds
            }; //开始日选好后,重置结束日的最小日期
            end.config.value = {
                year: date.year,
                month: date.month - 1,
                date: date.date,
                hours: date.hours,
                minutes: date.minutes,
                seconds: date.seconds
            }; //将结束日的初始值设定为开始日
        }
    });


    //结束时间
    var end = laydate.render({
        elem: '#endTime',
        min: '1900-1-1 00:00:00',
        max: '2099-6-16 23:59:59',
        trigger: 'click', //采用click弹出
        done: function (value, date, endDate) {
            start.config.max = {
                year: date.year,
                month: date.month - 1,
                date: date.date,
                hours: date.hours,
                minutes: date.minutes,
                seconds: date.seconds
            }; //结束日选好后,重置开始日的最大日期
        }
    });

之前版本的min方法改为min.config方法~
原因还是因为之前的一些方法在经过大改后无法继续使用了,官方文档目前也不是很完善。

新手上路,请多包涵

根据楼上的代码实测修改的

        //开始时间时间
var start_a = laydate.render({
    elem: '#beginTime',
    // min: moment().format("YYYY-MM-DD"),
    min: '2018-6.28',
    max: '2099-6-16',
    trigger: 'click', //采用click弹出
    done: function (value, date, endDate) {
        console.log(value)
        console.log(end)
        end.config.min = {
            year: date.year,
            month: date.month - 1,
            date: date.date,
            hours: date.hours,
            minutes: date.minutes,
            seconds: date.seconds
        }; //开始日选好后,重置结束日的最小日期
        end.config.value = {
            year: date.year,
            month: date.month - 1,
            date: date.date,
            hours: date.hours,
            minutes: date.minutes,
            seconds: date.seconds
        }; //将结束日的初始值设定为开始日

        console.log(end.config.min,end.config.value)
    }
});


//结束时间
var end = laydate.render({
    elem: '#endTime',
    min: '2018-6-28',
    max: '2099-6-16 23:59:59',
    trigger: 'click', //采用click弹出
    done: function (value, date, endDate) {
        console.log(value)
        console.log(start_a)
        start_a.config.max = {
            year: date.year,
            month: date.month - 1,
            date: date.date,
            hours: date.hours,
            minutes: date.minutes,
            seconds: date.seconds
        }; //结束日选好后,重置开始日的最大日期
    }
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题