Динамическое отключение дат в jquery datepicker - PullRequest
0 голосов
/ 08 марта 2011

В моем текущем проекте, когда пользователь выбирает отель и когда он выбирает дату прибытия и дату отъезда, я должен показывать даты недоступности отеля как отключенные в jquery datepicker

Это мой javascriptкод

    $("#select_villa").change(function(){
        $('#textfield1').datepicker( "destroy" );                                          
        var dataString = 'villa=' + $("#select_villa").val();
        $.ajax({
            type: "GET",
            url: "include/getdate.php",
            data: dataString,
            dataType: "json",
            success: function(data){


                $('#textfield1').datepicker({
                    dateFormat: 'yy-mm-dd',                                             
                    minDate: data[0].unavailable_date_from,
                    maxDate: data[0].unavailable_date_to
                });

            }
        });
        return false;
    });    

Здесь я должен динамически отключать minDate и maxDate в соответствии с датами доступности базы данных.

Это результат, который я получаю при изменении значения в выпадающем списке

[{"unavailable_date_from":"2011-03-03","unavailable_date_to":"2011-03-31"}]

Это мой фрагмент php ajax для получения недоступных дат.мне, как я могу достичь этого

Спасибо

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Вы можете изменить параметры (например, minDate и maxDate), используя метод option :

$('#textfield1').datepicker('option', {
    minDate: newMinDate,
    maxDate: newMaxDate
});

Итак, в вашем обработчике успеха AJAX просто извлеките новые даты из data[0].unavailable_date_from и data[0].unavailable_date_to и отправьте их в соответствующие средства выбора даты, как указано выше.

0 голосов
/ 30 апреля 2011

Если вы хотите отключить определенные дни, вы можете сделать это с помощью опции onSelect для средства выбора даты.

, например:

$('#textfield1').datepicker({
   dateFormat: 'yy-mm-dd',                                             
   minDate: data[0].unavailable_date_from,
   maxDate: data[0].unavailable_date_to
   onSelect: function(dateText, inst) { 
       if ($.inArray(dateText, data[0].unavailable_dates))
       {
           alert('invalid date');
           // do whatever you like here
       }
   });  

}

PS Я сделал предположения о ваших возвращенных данных, но думаю, вы можете видеть, что я получаю там.Также убедитесь, что ваши форматы даты совпадают с php для выбора даты.В противном случае вам необходимо преобразовать типы данных Date в javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...