jQueryのchangeイベントで気をつけること
jQueryのchangeイベントですが、IEだけ挙動が少し違いました。
jQueryはv1.4.1です。
以下はファイルを選択すると、changeイベントが発生するコードの概略です。
Smple Code
<input type="file" id="imageUpForm"> $("#imageUpForm").change(function() { // 処理 });
ただしIEだと発火しない
ファイルを選択後、イベントが発火するはずなのですが、IEの場合は発火しません。
IE以外のブラウザでは、画像を選択するとinput要素からフォーカスが外れてイベントが発火します。
IEの場合はinput要素からフォーカスが外れません。
IE以外
ファイルを選択→イベント発火
IE
ファイルを選択→ほかの要素をクリック→イベント発火
対策
onchange要素に指定すればIEでも問題なく動作しました。
<input type="file" id="imageUpForm" onchange="submitImage()">
IE6~IE9で動作の確認はとれました。
jQueryは大抵のブラウザに対応しているのですが、changeイベントの挙動はちょっと怪しいですね。