zoukankan      html  css  js  c++  java
  • Easyui datebox 限制时间选择范围



    Require Date:
    <input class="easyui-datebox" data-options="formatter:myformatter,parser:myparser,onSelect:selectStartDate" style=" 110px" id="StartTime"> To       : <input class="easyui-datebox" data-options="formatter:myformatter,parser:myparser,onSelect:selectEndDate" style=" 110px" id="EndTime">

    $(function () {

    bindDateBlur($("#StartTime"));
    bindDateBlur($("#EndTime"));

    //控件的初始限制
            $('#EndTime').datebox().datebox('calendar').calendar({
                validator: function (endDate) {
                    return endDate <= new Date();
                }
            });
            $('#StartTime').datebox().datebox('calendar').calendar({
                validator: function (startDate) {
                    return startDate <= new Date();
                }
            });
    })
    
    
    
     
    //easyui官方重写时间格式的方法
    function myformatter(date) {
        var y = date.getFullYear();
        var m = date.getMonth() + 1;
        var d = date.getDate();
        return y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d);
    }
    function myparser(s) {
        if (!s) return new Date();
        var ss = (s.split('-'));
        var y = parseInt(ss[0], 10);
        var m = parseInt(ss[1], 10);
        var d = parseInt(ss[2], 10);
        if (!isNaN(y) && !isNaN(m) && !isNaN(d)) {
            return new Date(y, m - 1, d);
        } else {
            return new Date();
        }
    }
    
    //当选择开始日期时限定结束日期的范围
    function selectStartDate(startDate) {
        //返回calendar会清空EndTime内容,需要保存下
        var tempEndDate = $('#EndTime').datebox('getValue')
        $('#EndTime').datebox().datebox('calendar').calendar({
            validator: function (endDate) {
                //限定日期选择范围
                return endDate >= startDate && endDate <= new Date();
            }
        });
        //将EndTime写回去
        $('#EndTime').datebox('setValue', tempEndDate);
    }
    //当选择结束日期时限定开始日期的范围
    function selectEndDate(endDate) {
        var tempStartDate = $('#StartTime').datebox('getValue');
        $('#StartTime').datebox().datebox('calendar').calendar({
            validator: function (startDate) {
                return startDate <= endDate && startDate <= new Date();
            }
        });
        $('#StartTime').datebox('setValue', tempStartDate);
    }
    //datebox的绑定事件
    function bindDateBlur(st) {
    
        st.datebox('textbox').bind('blur', function () {
            var s = st.textbox('getText');
            if (!s) return new Date();
            var nt = s.replace(///g, '-');
            s = (nt.split('-'));
            var a = parseInt(s[0], 10);
            var b = parseInt(s[1], 10);
            var c = parseInt(s[2], 10);
            var date = new Date();
            if (!isNaN(a) && !isNaN(b) && !isNaN(c)) {
                st.datebox('setValue', nt);
            } else if (!isNaN(a) && !isNaN(b)) {
                var y = date.getFullYear();
                st.datebox('setValue', y + '-' + a + '-' + b);
            } else {
                var y = date.getFullYear();
                var m = date.getMonth() + 1;
                var d = date.getDate();
                st.datebox('setValue', y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d));
            }
        });
    }
  • 相关阅读:
    深入理解link和@import到底有什么区别?
    你应该知道的简单易用的CSS技巧
    META标签的设置
    前端webp图片
    PAT 1130 Infix Expression[难][dfs]
    PAT 1118 Birds in Forest [一般]
    生信-cufflinks输入输出文件分析
    PAT 1121 Damn Single[简单]
    PAT 1049 Counting Ones [难]
    NGS中的一些软件功能介绍
  • 原文地址:https://www.cnblogs.com/Celebrator/p/5268180.html
Copyright © 2011-2022 走看看