• EasyUI限制时间选择(开始时间小于结束时间)


    datebox限制时间选择

    对datebox可选择日期进行限制,目前感觉使用起来效果很好,不可选择的日期置灰不可点击

    1. 限制开始时间小于结束时间

    //using
    limitStartDateAndEndDate($("#DateStart"), $("#DateEnd"));
    
    /**
     * 限制开始时间小于结束时间
     * @param {开始时间对象} startDateObj 
     * @param {结束时间对象} endDateObj 
     * @returns {} 
     */
    function limitStartDateAndEndDate(startDateObj,endDateObj) {
        startDateObj.next().click(function () {
            if (endDateObj.datebox("getValue") !== "") {
                startDateObj.datebox("calendar").calendar({
                    validator: function (date) {
                        var dateEnd = endDateObj.datebox("getValue");
                        var dateTimeEnd = new Date(dateEnd);
                        var validateTime = new Date(dateTimeEnd.getFullYear(), dateTimeEnd.getMonth(), dateTimeEnd.getDate());
                        return date <= validateTime;
                    }
                });
            } else {
                startDateObj.datebox("calendar").calendar({
                    validator: function (date) {
                        return date;
                    }
                });
            }
        });
    
        endDateObj.next().click(function () {
            if (startDateObj.datebox("getValue") !== "") {
                endDateObj.datebox("calendar").calendar({
                    validator: function (date) {
                        var dateStart = startDateObj.datebox("getValue");
                        var dateTimeStart = new Date(dateStart);
                        var validateTime = new Date(dateTimeStart.getFullYear(), dateTimeStart.getMonth(), dateTimeStart.getDate());
                        return date >= validateTime;
                    }
                });
            } else {
                endDateObj.datebox("calendar").calendar({
                    validator: function (date) {
                        return date;
                    }
                });
            }
        });
    }
    

    2. 限制开始时间小于指定时间

    /**
     * 限制开始时间小于指定时间
     * 限制时间为containLimitStartDateObj.limitEndDate
     * @param {开始时间对象} startDateObj 
     * @param {包含限制时间的对象} containLimitEndDateObj 
     * @returns {} 
     */
    function limitStartDateBeforeDate(startDateObj, containLimitEndDateObj) {
        startDateObj.next().click(function () {
            if (containLimitEndDateObj.limitEndDate !== "") {
                startDateObj.datebox("calendar").calendar({
                    validator: function (date) {
                        var dateTimeEnd = new Date(containLimitEndDateObj.limitEndDate);
                        var validateTime = new Date(dateTimeEnd.getFullYear(), dateTimeEnd.getMonth(), dateTimeEnd.getDate());
                        return date <= validateTime;
                    }
                });
            } else {
                startDateObj.datebox("calendar").calendar({
                    validator: function (date) {
                        return date;
                    }
                });
            }
        });
    }
    

    3. 限制结束时间大于指定时间

    /**
     * 限制结束时间大于指定时间
     * 限制时间为containLimitStartDateObj.limitStartDate
     * @param {包含限制时间的对象} containLimitStartDateObj 
     * @param {结束时间对象} endDateObj 
     * @returns {} 
     */
    function limitEndDateAfterDate(containLimitStartDateObj, endDateObj) {
        endDateObj.next().click(function () {
            if (containLimitStartDateObj.limitStartDate !== "") {
                endDateObj.datebox("calendar").calendar({
                    validator: function (date) {
                        var dateTimeStart = new Date(containLimitStartDateObj.limitStartDate);
                        var validateTime = new Date(dateTimeStart.getFullYear(), dateTimeStart.getMonth(), dateTimeStart.getDate());
                        return date >= validateTime;
                    }
                });
            } else {
                endDateObj.datebox("calendar").calendar({
                    validator: function (date) {
                        return date;
                    }
                });
            }
        });
    }
    

    备注:

    最后两个方法使用了对象进行了一次包裹,具体原因忘记了,因为直接传递时间字符串是有问题的,可能是由于值传递和引用传递的问题。

  • 相关阅读:
    Swagger使用总结
    idear常用快捷键
    Liunx下安装MongoDB
    python面向对象的特点,类定义等,私有属性、公有属性、成员属性
    Python,subprocess模块(补充)
    对称加密和非对称加密概述
    Python关于导入模块的一些感想:
    Python学习第二阶段Day2,模块subprocess、 logging、re
    Python学习第二阶段Day2(json/pickle)、 shelve、xml、PyYAML、configparser、hashlib模块
    Python学习第二阶段Day2,模块time/datetime、random、os、sys、shutil
  • 原文地址:https://www.cnblogs.com/halfsaltedfish/p/13232136.html
Copyright © 2020-2023  润新知