jquery datepicker prev按钮触发"闪烁"日历面板

时间:2014-04-04 14:21:27

标签: jquery jquery-ui-datepicker

我有一个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>

1 个答案:

答案 0 :(得分:0)

看起来这里出现了某种竞争条件导致问题。在关注第二个日期选择器之前添加一个小延迟似乎可以解决它。

onClose: function (selectedDate) {
    $('#date2').datepicker("option", "minDate", selectedDate);
    setTimeout(function () {
        $('#date2').focus();
    }, 100);
}

<强> jsFiddle example