在datepicker中只允许每月的一天

时间:2016-07-13 10:33:48

标签: jquery datepicker jquery-ui-datepicker

我的要求有点奇怪,但我无法做到。 我有一个jquery日期选择器,用户应该能够选择任何一年,任何一个月,但仅限于本月的第21天。我试过了

$( "#t_funin_teate_shikyu_change_dt" ).datepicker({
    beforeShowDay: function(date){
      var dt = date.getDate();
      return [dt == 21, ""];
    },
    language: "ja",
    orientation: "bottom auto",
    toggleActive: true,
    autoclose: true,
});

没有运气..任何帮助非常感谢

2 个答案:

答案 0 :(得分:1)

试试这个:

$(function(){
    $("input").datepicker(
        {
        beforeShowDay: function (date) {
        if (date.getDate() == 21 ) {
            return [true, ''];
        }
        return [false, ''];
        }
        }

    );
});

<强> JSFIDDLE DEMO

修改

如果您不想看到21以外的日期并对其进行硬编码,那么您可以尝试这样做

$(function() {
    $('.date-picker').datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'mm/dd/yy',
        onClose: function(dateText, inst) { 
            var day = 21;
            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, day));
        }
    });
});

<强> DEMO

答案 1 :(得分:0)

在我的rails应用程序中,jQueryUI的beforeShowDay方法不起作用,我仍然无法弄清楚原因!对我有用的是

$( "#t_funin_teate_shikyu_change_dt" ).datepicker({
    format: "yyyy/mm/21",
    startView: "months",
    minViewMode: "months",
    language: "ja",
    orientation: "bottom auto",
    toggleActive: true,
    autoclose: true,
   });