easyui中datebox设置,只显示年月,也只能选择年

var db = $('#txtStartDate');

        db.datebox({    

        onShowPanel : function() {// 显示日期选择对象后再触发弹出月份层的事件,初始化时没有生成月份层    

        span.trigger('click'); // 触发click事件弹出月份层

        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];//年份

        var month=parseInt($(this).attr('abbr'), 10);//月份

        if(month<10){

        month="0"+month;

        }

        db.datebox('hidePanel')// 隐藏日期对象    

                            .datebox('setValue', year + '-' + month);// 设置日期的值 

        });

        }, 0);  

        },

            parser: function (s) {

                if (!s) return new Date();

                var arr = s.split('-');

                return new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, 1);

            },

            //配置formatter,只返回年月 之前是这样的d.getFullYear() + '-' +(d.getMonth()); 

            formatter: function (d) { 

                var currentMonth = (d.getMonth()+1);

                var currentMonthStr = currentMonth < 10 ? ('0' + currentMonth) : (currentMonth + '');

                return d.getFullYear() + '-' + currentMonthStr; 

            }

        });    

        var p = db.datebox('panel'); // 日期选择对象    

        var span = p.find('div.calendar-title span'); // 显示月份层的触发控件 

猜你喜欢

转载自blog.csdn.net/qq_20426717/article/details/88753041