2014-04-04 42 views
1

我有一個jQuery的日期選擇器問題:有2個輸入字段。 (#date1和#date2)打開這些輸入,彈出日期選擇器的日曆面板。當我從第一個輸入中選取一個日期時,光標自動跳到第二個輸入,然後自動打開第二個輸入的日曆面板。 (你不能選擇未來的日期),在#date2,只有前面的箭頭按鈕適用於預先設定的月份和日期。當我第一次點擊prev按鈕時,整個日曆窗口「閃爍」一次, - 我認爲 - 日曆再次加載,並且該效果導致日曆閃爍。這很煩人,你必須再次點擊prev按鈕才能看到前幾個月。所以,如果你再次點擊prev箭頭,它可以正常工作。我怎麼能終止這個「閃爍」?jquery datepicker prev button觸發「閃爍」日曆面板

$('#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

看起來像是有某種競爭條件在這裏引起的問題。在關注第二個日期選擇器之前添加一個小延遲似乎解決了它。

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

jsFiddle example

+0

謝謝!它解決了我的問題! :) 我很開心! :)我不認爲這可能是問題。再次感謝! – user3498328