jQuery datepicker更改格式未显示正确的月份

时间:2013-06-14 02:46:48

标签: javascript jquery jquery-ui datepicker jquery-ui-datepicker

我正在使用jQuery datepicker来选择日期。但我需要将日期显示为“2012年4月”。 为此,我在datepicker代码

中添加了以下选项
$(function() {
    $('#a').datepicker({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'MM yy',
    });
});

执行此操作后,我可以选择“2012年1月1日”作为日期选择器中的日期。但是当我再次点击日期选择器时,UI日历仍会显示当前(今天)的月份和年份,而不是之前选择的日期。

您可以在此处查看完整代码http://jsfiddle.net/kGzXR/1/

如果我在这里遗漏了什么,能告诉我。

2 个答案:

答案 0 :(得分:2)

如果您只需要月份和年份(因为那就是您在输入中存储的内容),您可以使用:

$(function() { 
//set datepicker or month/year selection
        $('#a').datepicker( {
            changeMonth: true,
            changeYear: true,
            showButtonPanel: true,
            dateFormat: 'MM yy'
        }); 

        $("#a").focus(function () {
            $(".ui-datepicker-calendar").hide();
            //add event to perform on done button click
            $(".ui-datepicker-close").click(function(){
                var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
                $("#a").datepicker('option', 'defaultDate', new Date(year, month, 1));
            $("#a").datepicker('setDate', new Date(year, month, 1));
            });
        });   

});  

检查demo

答案 1 :(得分:0)

如果日期突出显示是您的问题,则可以使用下面的css

将其删除
.ui-datepicker-today a.ui-state-highlight {
    border-color: #d3d3d3;
    background: #e6e6e6 url(/themeroller/images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;;
    color: #555555;    
}

JSFiddle