簡體   English   中英

點擊下個月后jQuery Datepicker打開兩次(使用2個Datepickers)

[英]jQuery Datepicker opens twice after click on next month (using 2 Datepickers)

我有一個網站,我使用兩個日期選擇器。 第一個選擇出發,第二個選擇到達。

第二個datepicker由第一個的“onClose:”函數打開。

在此之前沒有問題。 當我在第二個日期選擇器中點擊next month ,它就會出現。 似乎,datepicker關閉了半秒鍾,並在同一個月重新開放。 之后我通常可以使用next month按鈕。

我沒有遇到問題。 我對重現問題的最低要求做了一個小提琴,可以肯定的是,我的項目中沒有其他代碼產生問題。

有趣的事實:它在IE 10中運行良好,而在FF / Chrome中運行良好。

這里有小提琴: http//jsfiddle.net/xe247evv/1/

<input type="text" value="1.1.1700" class="datepicker" id="datepickerFromDate2" readonly="readonly">
<input type="text" value="5.1.1700" class="datepicker" id="datepickerToDate2" readonly="readonly">

jQuery("#datepickerFromDate2").datepicker({
  onClose: function() {
      jQuery('#datepickerToDate2').datepicker('show');
  }
});
jQuery("#datepickerToDate2").datepicker();

重現它:

  1. 單擊左側日期選擇器並選擇日期。

  2. 在新打開的日期選擇器中單擊下個月的右箭頭。

  3. 你會看到一個bug。

有人可以幫我解決這個奇怪的行為嗎?

好的,謝謝你的幫助Dave Salomon。 但我有另一個解決方案的靈感來自TrueBlueAussie的回答,他可能因為小提琴中的js錯誤而刪除了他的答案。

他提到了這個問題,兩個datepicker都使用相同的“ui-datepicker-div”,這可能會導致問題。

我的解決方案是在第二個datepicker打開之前創建一個window.setTimeout。

看到新的小提琴: http//jsfiddle.net/xe247evv/6/

jQuery("#datepickerFromDate2").datepicker({
  onClose: function() {
      window.setTimeout(function(){
          jQuery('#datepickerToDate2').datepicker('show');
      }, 0);
  }
});
jQuery("#datepickerToDate2").datepicker();

這看起來像一個jQuery UI bug。

一種解決方法是通過單擊按鈕而不是字段焦點來設置要顯示的日期選擇器,然后隱藏該按鈕。

jQuery("#datepickerToDate2").datepicker({showOn:"button"}).next('.ui-datepicker-trigger').hide();

http://jsfiddle.net/daveSalomon/xe247evv/5/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM