如何在datepicker中禁用先前选定的月份

时间:2016-07-31 22:05:35

标签: javascript jquery datepicker

我有两个datepickers 1-fromDate和2-toDate我想要如果我在fromDate中选择month / anydate / year,然后将toDate datepicker设置为nextmonth / anydate / year并禁用之前的日期。

 $("#fromDate").datepicker({
        maxDate: 0,
        onSelect: function (date) {
 $("#toDate").datepicker('option', 'minDate', date);
        }
    });
 $("#toDate").datepicker({
        maxDate: '0'
    });

此代码禁用了不是月份的日子

2 个答案:

答案 0 :(得分:0)

试试这个

$( function() 
    {
        var dateFormat = "mm/dd/yy",
        from = $( "#from" )
        .datepicker
        ({
            changeMonth: true,
            numberOfMonths: 1
        })
        .on( "change", function() 
        {
          to.datepicker( "option", "minDate", getDate( this ) );
        }),
        to = $( "#to" ).datepicker({
            changeMonth: true,
            numberOfMonths: 1
        })
        .on( "change", function() 
        {
            from.datepicker( "option", "maxDate", getDate( this ) );
        });

        function getDate( element ) 
        {
            var date;
            try 
            {
                date = $.datepicker.parseDate( dateFormat, element.value );
            } 
            catch( error ) 
            {
                date = null;
            }
            return date;
        }
    } );

答案 1 :(得分:0)

在ShowDay和onSelect之前使用,以禁用已选择的日期

beforeShowDay 在呈现日历之前运行。 onSelect 在用户选择日期后运行

制作一个数组来存储所选日期,当用户选择日期将其推入数组并且 beforeShowDay 回调接收一个月中所有日期的日期参数时

beforeShowDay: function(date){
 ...
 //check date 
}

onSelect: function(date) {
 ...
 //date is user selected value save it for future comparison
},

所以你可以在条件中检查数组中的日期是否为日期返回false使其被禁用并显示为灰色。

https://jsfiddle.net/0g1atvm1/3/

如果有帮助的话。