我有一个jquery datepicker问题:有2个输入字段。 (#date1和#date2)这些输入打开,弹出日期选择器的日历面板。当我从第一个输入中选择一个日期时,光标会自动跳转到第二个输入,并自动打开第二个输入的日历面板。 (您不能选择将来的日期),在#date2,只有前一个箭头按钮适用于prevoius月和日。当我第一次点击上一个按钮时,整个日历窗口"闪烁"有一次, - 我认为 - 日历再次加载,这种效果导致日历闪烁。非常烦人,你必须再次点击前一个按钮才能看到前几个月。因此,如果再次单击上一个箭头,它可以正常工作。我怎么能终止这个"眨眼"?
$('#date1').datepicker({
maxDate: '+0d',
changeMonth: true,
numberOfMonths: 1,
onClose: function( selectedDate ) {
$('#date2').datepicker( "option", "minDate", selectedDate );
$('#date2').focus();
}
});
$('#date2').datepicker({
maxDate: '+0d',
changeMonth: true,
numberOfMonths: 1,
onClose: function( selectedDate ) {
$( '#date1' ).datepicker( "option", "maxDate", selectedDate );
}
});
<div class="tableoptions">
<span class="field">
<label for="fromdate">From:</label>
<input id="date1" name='fromdate' type="text" class="width75" />
</span>
<span class="field">
<label for="todate">To:</label>
<input id="date2" name='todate' type="text" class="width75" />
</span>
<input type ="submit" class="dp_submit" value="Date Filter">
</div>
答案 0 :(得分:0)
看起来这里出现了某种竞争条件导致问题。在关注第二个日期选择器之前添加一个小延迟似乎可以解决它。
onClose: function (selectedDate) {
$('#date2').datepicker("option", "minDate", selectedDate);
setTimeout(function () {
$('#date2').focus();
}, 100);
}
<强> jsFiddle example 强>