2012-08-10 2 views
0

У меня есть две формы с 2 поля ввода для inputing даты начала и окончания, разметку для этого:JQuery DatePicker, onselect в цикле

<form> 
    <input type="text" id="from1" name="from1" /> 
    <input type="text" id="to1" name="to1" /> 
</form> 
<form> 
    <input type="text" id="from2" name="from2" /> 
    <input type="text" id="to2" name="to2" /> 
</form> 

мне нужно установить минимальное значение для поля ввода с датой конца, когда значение в поле ввода с датой начала - изменения. Когда я устанавливаю datepicker прямо следующим образом:

$("#from1").datepicker({ 
    onSelect: function(selectedDate) { 
     $("#to1").datepicker("option", "minDate", selectedDate); 
    } 
}); 
$("#to1").datepicker(); 

, который работает. Но когда я поставил DatePicker в цикле, как это:

for (var i = 1; i < 3; i++) { 
    var input1 = "#from"+i; 
    var input2 = "#to"+i; 
    $(input1).datepicker({ 
     onSelect: function(selectedDate) { 
      $(input2).datepicker("option", "minDate", selectedDate); 
     } 
    }); 
    $(input2).datepicker(); 
} 

, что не работает, если выбрать значение в «from1», «MinDate» установлен только для «ТО2». Я хотел бы установить «minDate» для «to1», когда я изменяю значение в «from1». Любая идея, что не так? Заранее спасибо

+0

составляет $ (input2) .datepicker(); нужен вообще? Я имею в виду, что вы привязываете datepicker() к элементу внутри onSelect. –

ответ

0

Я не понимаю, почему вы установили datepicker в цикле ... Вместо этого используйте класс, и это будет проще. И почему у вас есть две формы?

<form> 
    <input type="text" id="from1" class="from" name="from1" /> 
    <input type="text" id="to1" class="to" name="to1" /> 
    <input type="text" id="from2" class="from" name="from2" /> 
    <input type="text" id="to2" class="to" name="to2" /> 
</form> 

И просто это в JS:

$(".from").datepicker({ 
    onSelect: function(selectedDate) { 
     $(this).next() 
       .datepicker("option", "minDate", selectedDate); 
    } 
}) 
// not sure you need this... 
.next() 
.datepicker(); 
+0

У меня есть больше форм на одной странице (это упрощенный), каждая форма отправляет разные данные. Ваше решение с next() работает отлично. Большое спасибо. – user1392148

Смежные вопросы