【问题标题】:JQuery Datepicker Only For Month and YearJQuery Datepicker 仅适用于月份和年份
【发布时间】:2012-09-22 07:01:54
【问题描述】:

我正在使用 jquery Datepicker UI。我只需要使用此 UI 显示月份和年份。 我得到了使用以下代码:

$(function() {
         $('.date-picker').datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'yy-mm',
        onChangeMonthYear: function(dateText, inst) { 
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));

        }
    });
});

HTML:

<input type='text' id='date' name='eattdate' class='date-picker' value='".$date."' style='width:105px;'>

这很好用,默认显示当前月份和年份。但我想选择月份和年份。

【问题讨论】:

    标签: jquery datepicker


    【解决方案1】:

    首先,我相信您缺少隐藏日历的功能(我猜您想要这样,因为您只处理月份和年份,但我可能错了)。因此,如果这确实是您的意图,请使用:

    .ui-datepicker-calendar {
        display: none;
    }
    

    在您的 CSS 文件中。

    现在,对于没有在之前选择的日期开启的日期选择器,可以引入beforeShow,如下:

    $(function() {
         $('.date-picker').datepicker( {
            changeMonth: true,
            changeYear: true,
            showButtonPanel: true,
            dateFormat: 'yy-mm',
    
            onChangeMonthYear: function(dateText, inst) { 
                var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
                var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
    
                $(this).datepicker('setDate', new Date(year, month, 1));
            },
    
            beforeShow: function() {
                var dateText = $(this).val();
                var isPopulated = dateText.length > 0;
    
                if (isPopulated) {
                    var selectedDate = $.datepicker.parseDate("yy-mm-dd", dateText + "-01");
    
                    $(this).datepicker("option", "defaultDate", selectedDate);
                    $(this).datepicker("setDate", selectedDate);
                    $(this).datepicker("refresh");
                }
            }
        });
    });
    

    我相信这会让你得到你想要的。

    【讨论】:

      【解决方案2】:

      试试这个:

      defaultDate: new Date()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-05
        • 1970-01-01
        • 1970-01-01
        • 2018-06-28
        相关资源
        最近更新 更多