Изменить значение переменной jquery на основе поля выбора - PullRequest
0 голосов
/ 27 апреля 2010

У меня есть скрипт jquery datepicker, и я хочу изменить значение minDate: 10 в поле выбора. если выбран первый параметр minDate: 10, если выбран второй вариант, minDate: 20 etc ...

Будет ли обновляться средство выбора даты в режиме реального времени каждый раз, когда я выбираю другой выбор?

Заранее спасибо!

$(function() {
               $('#hotel').change(function() {
                 // assign the value to a variable, so you can test to see if it is working
                 var selectVal = $('#hotel :selected').val();
                 if( selectVal == "hotel_c" ) {
                var date = 10;
                 }
                 if( selectVal == "hotel_a" ) {
                var date = 15;
                 }
                 if( selectVal == "hotel_b" ) {
                var date = 6;
                 }
                });
        var dates = $('#from, #to').datepicker({
            defaultDate: "+1w",
            changeMonth: true,
            dateFormat: 'yy-m-d',
            minDate: 10,
            numberOfMonths: 3,
            onSelect: function(selectedDate) {
                var option = this.id == "from" ? "minDate" : "maxDate";
                var instance = $(this).data("datepicker");
                var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
                dates.not(this).datepicker("option", option, date);
            }
        });
    });

Ответы [ 2 ]

2 голосов
/ 27 апреля 2010

Вы можете написать свой обработчик изменений следующим образом:

var hotelMap = { hotel_a: 15, hotel_b: 6, hotel_c: 10 };
$('#hotel').change(function() {
  var selectVal = $('#hotel :selected').val();
  $("#from, #to").datepicker("option", "minDate", hotelMap[selectVal]);
});

Это имеет 2 изменения, мы вызываем метод .datepicker('option', 'minDate', val) и используем объект для отображения диапазонов дат, чтобы немного его очистить. Это позволит вам выбрать дату 15, 6 или 10 дней в зависимости от вашего выбора.

Вы можете увидеть это с остальной частью вашего кода, работающей здесь

0 голосов
/ 27 апреля 2010

Измените ваш обработчик изменений, чтобы он также обновлял указатель даты при каждом изменении поля выбора. См. Документацию по выбору даты для изменения minDate и других параметров после инициализации Функция будет принимать объект даты или строку, представляющую дату. Присвоение номера запретит date дней с сегодняшнего дня.

$('#hotel').change(function() {
    ...
    var date = // somehow get the date

    // update the date picker
    // need to construct a date string or a date object here
    // will disallow "date" days from today
    $('#from, #to').datepicker('option', 'minDate', date);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...