jQuery datepicker,onselect in循环

时间:2012-08-10 22:42:23

标签: jquery datepicker

我有两个表单,带有2个输入框,用于输入开始日期和结束日期,标记为:

<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”仅设置为“to2”。当我在“from1”中更改值时,我想为“to1”设置“minDate”。  知道什么是错的吗?提前谢谢

1 个答案:

答案 0 :(得分: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();