0

我有两个带有 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>

当具有开始日期的输入框中的值发生变化时,我需要为具有结束日期的输入框设置最小值。当我像这样直接设置日期选择器时:

$("#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”。知道有什么问题吗?先感谢您

4

1 回答 1

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();
于 2012-08-10T22:50:56.153 回答