3

jQuery UIのDatepickerがInternet Explorer(バージョン8および9、おそらく他のもの)をクラッシュさせることがある問題が発生しています。 IEは、ページの読み込み時間の約25%、またはdatepickerフィールドを使用した後にクラッシュします。これはWindows 7に特有であるかもしれません。1.6.2から1.7.1までのさまざまなバージョンのjQueryを使用して問題を再現できます。私はIEがjsfiddleページに移動してかなり容易にクラッシュして、周りの(などリフレッシュ、日付を選択し、フィールドの外タブを)再生を開始するために得ることができますjQuery UI DatepickerによりInternet Explorerがクラッシュする

http://jsfiddle.net/wLW8D/

<script> 
    $(function() { 
     $('#someDate').datepicker(); 
    }); 
</script> 

<input type="text" name="someDate" id="someDate" value=""> 

IEがクラッシュすると、「Internet Explorerが動作しなくなった - 問題が原因でプログラムが正常に動作しなくなりました.Windowsはプログラムを閉じて、解決策が利用可能である場合に通知します。イベントログにイベントID 1000のアプリケーションエラーが表示されます。

何か提案がありますか?

~~~~~~~~~

UPDATE:この問題は解決取得でしたが、私が作るように変更されたかを理解していないので、私は答えとしてそれをマークするか、本当の答えを提供するために躊躇していそれは働く。問題の発生は、IT担当者が配布したVM上で発生していました。 ITスタッフがVM上で何かを変えました(たぶんおそらくWindows設定?)、問題は解決されました。その後、

$('.DatePicker').datepicker({ 
    onChangeMonthYear: function(year, month, inst) { 
    var now = new Date(this.value); 
    if (now) { 
     var max = new Date(year, month, 0).getDate(); 
     var day = now.getDate() > max ? max : now.getDate(); 
     var newDate = new Date(year, month-1, day); 
     inst.input.datepicker('setDate', newDate); 
    } 
    } 
}); 

(もちろん、私は必要な入力要素にクラス=日付ピッカーを添付しています。)

+0

ここに問題はありません、IE8/Win7 – Blazemonger

+1

これはヨーヨーの問題のようですウルマシン。私はjsFiddleを見て、フィールドをクリックすることができます - そしてdatepickerがスタイルされていない間に、それはまだ現れて、イベントに適切に反応します。 IE9で8回要求し、クラッシュしたことはありませんでした。 – Tejs

+0

私のマシンにはユニークではありません。それは私がオフィスでチェックしたすべてのマシンで起きている。これまでのところ、すべてのWindows 7 Pro –

答えて

0

インターネット上で誰かによって提案された日付ピッカー要素を初期化するとき、私は似た何かをする場合日付を変更するとIEが常にクラッシュします。

私がonChangeMonthYearハンドラを外すか、inst.input.datepicker ...行をコメントアウトすると、問題は消えます(この場合、必要な機能も消えます)。

私はいくつかのより多くの実験を行なったし、問題は最初の行であることに気づいたので:ここ

var now = new Date(this.value); 

我々は、入力フィールドの値から日付変数を作成してみてください。フォーマットがローカライズされている(私のハンガリー語のような)ときにIEが構築されないので、結果はNaNになります。これは本当の問題だと思われます。とにかく、ChromeとFirefoxが正常に動作していたのは奇妙なことでした。

だから私はに私の最初の行を変更しました:

var now = inst.input.datepicker('getDate'); 

とNOクラッシュはもうありません。

私は、一番下の行で別の奇妙な動作を見つけました。小さな矩形がDatePickerに表示されていました。これは、マウスオーバー時にもいくつかの間違いを引き起こしました。しかし、私は私のメインのテンプレートでjquery.ui.css後のCSSの小片を追加し、このためにも解決策を見つけた:

#ui-datepicker-div 
{ 
    display: none; 
} 

だから私は、私が望んでいたとして、それはIE6、クロム、Firefoxで動作します幸せです。同様

$('.DatePicker').datepicker({ 
    onChangeMonthYear: function(year, month, inst) { 
    var now = inst.input.datepicker('getDate'); 
    if (now) { 
     var max = new Date(year, month, 0).getDate(); 
     var day = now.getDate() > max ? max : now.getDate(); 
     var newDate = new Date(year, month-1, day); 
     inst.input.datepicker('setDate', newDate); 
    } 
    } 
}); 

と私のDateTimePicker:

私はjQueryの1.7.1とjquery.ui.1.8.16

を使用しています。ここ

は、日付ピッカーのための私の最後の初期化コードであります

Miklos

関連する問題