EasyUI的datebox,只显示年月功能

之前做datebox只显示年月的功能是参照攻城狮老丁的博客

不只是我公司框架的问题还是其他问题 有点小bug,做了改动,顺便做个记录

 $('#rePPR_TIME').datebox({
        onShowPanel : function() {// 显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层
            span.trigger('click'); // 触发click事件弹出月份层
            if (!tds)
                setTimeout(function() {// 延时触发获取月份对象,因为上面的事件触发和对象生成有时间间隔
                    tds = p.find('div.calendar-menu-month-inner td');
                    tds.click(function(e) {
                        e.stopPropagation(); // 禁止冒泡执行easyui给月份绑定的事件
                        var year = /\d{4}/.exec(span.html())[0]// 得到年份
                            , month = parseInt($(this).attr('abbr'), 10); // 月份
                        $('#rePPR_TIME').datebox('hidePanel')// 隐藏日期对象
                            .datebox('setValue', year + '-' + month); // 设置日期的值
                    });
                }, 0);
        },
        parser : function(s) {// 配置parser,返回选择的日期
            if (!s)
                return new Date();
            var arr = s.split('-');
            return new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, 1);
        },
        formatter : function(d) {
            var month = d.getMonth()+1;
            if(month<10){
                month = "0"+month;
            }
            if (d.getMonth() == 0) {
                return d.getFullYear()-1 + '-' + 12;
            } else {
                return d.getFullYear() + '-' + month;
            }
        },// 配置formatter,只返回年月
        editable : false,// 不可编辑,只能选择
    });
    var p = $('#rePPR_TIME').datebox('panel'), // 日期选择对象
        tds = false, // 日期选择对象中月份
        span = p.find('span.calendar-text'); // 显示月份层的触发控件
    var curr_time = new Date();
    var strDate = curr_time.getFullYear()+"-";
    strDate += curr_time.getMonth()+1;
    $('#rePPR_TIME').datebox('setValue',strDate);

有需要的可以试一下 对比下那个好用,可以反馈给我,大家一起学习

猜你喜欢

转载自blog.csdn.net/qq_42440234/article/details/82254937
今日推荐