singod / jeDate

jeDate V6.5.0 是一款原生JS开发的 不依赖任何第三方库 大众化的日期控件,她身兼多职,虽不是万能的,但是她却是功能强大多样的美少女,她除了包含 单双面板、区域选择、 多语言、日历固定、有效无效日期、日期时间戳转换、日期加减、限制时分秒、初始化日期加减N、日期标注点、设定年月(YYYY-MM)、日期范围限制、开始日期设定、自定义日期格式、当天的前后若干天返回、时分秒选择、智能响应、自动纠错、节日识别,操作等常规功能外,根据不同的日期格式,显示不同内容,还拥有更多趋近完美的解决方案。更多的是需要你与她的亲密接触与呵护!
http://www.jemui.com/uidoc/jedate.html
MIT License
475 stars 153 forks source link

日期联动 #97

Open xuminxue opened 4 years ago

xuminxue commented 4 years ago

选择了开始时间后,重现点击开始时间报错 错误信息如下: jedate.min.js:8 Uncaught TypeError: Cannot read property 'replace' of undefined

MarsZhu commented 4 years ago

日期联动不能初始化值

liguangni commented 4 years ago
<span class="datetxt">开始日期:</span><input type="text" class="dateinput dateicon" id="inpstart" readonly>
<span class="datetxt">结束日期:</span><input type="text" class="dateinput dateicon" id="inpend" readonly>
<script type="text/javascript">
var start = {}, end = {};
jeDate('#inpstart',{
    format: 'YYYY-MM-DD hh:mm:ss',
    minDate: '2014-06-16 23:59:59', //设定最小日期为当前日期
    maxDate: function (that) {
        //that 指向实例对象
        return jeDate.valText(that.valCell) == "" ? jeDate.nowDate({DD:0}) : start.maxDate;
    }, //设定最大日期为当前日期
    donefun: function(obj){
        end.minDate = obj.val; //开始日选好后,重置结束日的最小日期
        jeDate("#inpend",LinkageEndDate(false));
    }
});
jeDate('#inpend',LinkageEndDate);

function LinkageEndDate(istg) {
    return {
        trigger : istg || "click",
        format: 'YYYY-MM-DD hh:mm:ss',
        minDate: function (that) {
            //that 指向实例对象
            var nowMinDate = jeDate.valText('#inpstart') == "" && jeDate.valText(that.valCell) == "";
            return nowMinDate ? jeDate.nowDate({DD:0}) : end.minDate ;
        }, //设定最小日期为当前日期
        maxDate: '2099-06-16 23:59:59', //设定最大日期为当前日期
        donefun: function(obj){
            start.maxDate = obj.val; //将结束日的初始值设定为开始日的最大日期
        }
    };    
}
</script>

=============== 你可以参考如上代码,我已实现

liguangni commented 4 years ago

上述代码也有点小问题,我稍微调整了一下,可以参考下面这一版。

var start = {}, end = {};
        start.minDate = end.minDate = '2020-08-01';
        start.maxDate = end.maxDate = jeDate.nowDate({DD:0});
        jeDate('#starttime',{
            format: 'YYYY-MM-DD',
            onClose:false,
            isinitVal:true,
            minDate: start.minDate, //设定最小日期为当前日期
            maxDate: function (that) {
                //that 指向实例对象
                return jeDate.valText(that.valCell) == "" ? jeDate.nowDate({DD:0}) : start.maxDate;
            }, //设定最大日期为当前日期
            donefun: function(obj){
                end.minDate = obj.val; //开始日选好后,重置结束日的最小日期
                jeDate("#endtime",LinkageEndDate(false));
            }
        });

        jeDate('#endtime',LinkageEndDate);

        function LinkageEndDate(istg) {
            return {
                trigger : istg || "click",
                format: 'YYYY-MM-DD',
                onClose:false,
                isinitVal:true,
                minDate: function (that) {
                    //that 指向实例对象
                    var nowMinDate = jeDate.valText('#starttime') == "" && jeDate.valText(that.valCell) == "";
                    return nowMinDate ? jeDate.nowDate({DD:0}) : end.minDate ;
                }, //设定最小日期为当前日期
                maxDate: jeDate.nowDate(), //设定最大日期为当前日期
                donefun: function(obj){
                    start.maxDate = obj.val; //将结束日的初始值设定为开始日的最大日期
                }
            };    
        }