我有两个表单,带有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”。 知道什么是错的吗?提前谢谢
答案 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();