Hatena::ブログ(Diary)

ふってもハレても このページをアンテナに追加 RSSフィード Twitter

2012-03-19

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イベントの挙動はちょっと怪しいですね。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/sho-yamasaki/20120319/1332168988
リンク元