5

jQuery的日期選擇器不斷點擊IE 8中的日期後重開,甚至在他們的演示頁:jQuery的日期選擇器保持在IE瀏覽器重新開啓

http://jqueryui.com/demos/datepicker/

有誰知道如何解決這一問題?我不知道演示頁面,但我有與jQuery 1.6.2和jQuery UI 1.8.15完全相同的問題。

此外,設置的minDate和的maxDate選項似乎不具有在IE 8. 任何影響上面似乎也是真實的IE 7.

+0

我只是碰到這種同樣的問題跑。它似乎是1.8.15中引入的新行爲。我正在尋找解決方法。 –

+0

降級到jQuery UI 1.8.14爲我完成了這項工作。 –

+0

有一個「穩定」版本的1.8.16也解決了這個問題。 –

回答

1

1.8.14在IE8 works fine

重新開放似乎是1.8.15中的一個錯誤,請參閱broken demo

+0

謝謝!我降級到1.8.14,並修復了日曆重啓問題。希望有人爲minDate和maxDate問題提供解決方案。 –

+0

好吧,minDate和maxDate是我的錯誤。我以錯誤的格式傳遞日期。我將新日期('2011-08-16')而不是日期('08-18-2011')作爲minDate選項傳遞。 –

+0

很高興你能解決其他部分。我搜索了jQuery UI bug列表,但沒有找到與您找到的相匹配的東西。如果我找不到現有的錯誤,我將在明天自己提出。 – andyb

1

我與IE8和自定義最小版本的Jquery UI 1.8.16(所有選項選擇)都有同樣的問題當我使用1.8.16的完整發布版本時,問題就消失了。

+0

感謝您的輸入!我會確保我使用完整版本。 –

8

以下解決這個問題對我來說(使用jQuery 1.7.2/jQueryUI的1.8.20)

var $input = $('#date'); 

$input.datepicker({ 
    /* 
    * your other settings here 
    */ 
    onSelect : function() { $input.blur(); }, 
    onClose : function() { $input.change(); } 
}); 

$input.on('change paste', function(evt) { 
    // process new date input here 
}); 
+0

你也可以在'onSelect'的'onClose'回調函數中使用'$(this)'。 –

+1

@koiyu,你可以,但是你再次調用jQuery構造函數來爲輸入元素創建一個新的實例。使用緩存實例效率更高。 –

1

我們正面臨着jQuery UI的1.11.2同樣的問題。下面的代碼片段解決了我們的情況下,問題:

var input = $('<input>'); 
 

 
input.datepicker({ 
 
    onSelect: function() { 
 
    this.lastShown = new Date().getTime(); 
 
    }, 
 
    beforeShow: function() { 
 
    var time = new Date().getTime(); 
 
    return this.lastShown === undefined || time - this.lastShown > 500; 
 
    } 
 
});