JQuery datepicker - как изменить максимальную дату на определенную дату начала? - PullRequest
1 голос
/ 26 марта 2012

У меня есть следующий код:

$(function() {          
var dates = $( "#from_date, #to_date" ).datepicker({            
defaultDate: "-1w",
dateFormat: 'yy-mm-dd',
            onSelect: function( selectedDate ) {
                if (selectedDate < "2012-03-27" ) {
                    maxDate: new Date(2012, 03 - 1, 27); // it will set minDate from 25 October 2009
                };
                var option = this.id == "from_date" ? "minDate" : "maxDate",
                instance = $( this ).data( "datepicker" ), 
                date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat,selectedDate, instance.settings );
                dates.not( this ).datepicker( "option", option, date );

            }
        });

    });

Мне нужно, чтобы maxDate был ограничен 2012-03-27, в случае, если дата начала была меньше, чем.

Я пытался ВСЕ .... действительно отчаянно здесь спасибо, Дэнни

1 Ответ

3 голосов
/ 27 марта 2012

Хорошо, теперь я вижу, что вы пытаетесь сделать с maxDate.Вы пытаетесь установить параметр для средства выбора даты, находясь в обработчике событий!

$("#from_date, #to_date").datepicker({
    defaultDate: "-1w",
    dateFormat: 'yy-mm-dd',
    onSelect: function(selectedDate) {
        // begin event handler
        if (selectedDate < "2012-03-27") {
             // you cannot set option of the datepicker like this from
             // an event handler !
             maxDate: new Date(2012, 03 - 1, 27);
        }
        // end of event handler
    }
});

Чтобы изменить параметр экземпляра средства выбора даты, используйте метод "option" плагина:

$(...).datepicker("option", <optionName>, <newValue>);

Теперь я до сих пор не уверен, что полностью понимаю, что вы хотите с датами, но для блокировки другого средства выбора даты на определенную дату вы можете установить minDate и maxDate, поэтому можно выбрать только эту дату:

if (selectedDate < "2012-03-27") {
    var maxDate = new Date(2012, 03 - 1, 27);
    $("#to_date").datepicker("option", 'minDate', maxDate);
    $("#to_date").datepicker("option", 'maxDate', maxDate); 
}          
...