0

タイプファイルの入力要素があります。ファイルが選択されると関数を実行できるように、変更イベントを document.ready の要素にバインドしています。これは、IE 9 以降と Chrome で非常にうまく機能します。

ただし、IE 8 のユーザーもいます。IE 8 では、最初にイベントが発生し、それ以降ファイルを選択しようとしてもイベントは発生しません。ファイル名をクリアしようとしましたが、それは助けにはなりませんでした。

うまくいけば、ブラウザーのチェックを行わず、IE 8 の場合は、ファイルを選択するたびにイベントをバインドします。

私はjsfiddleでこれを設定しています:

http://jsfiddle.net/sanpopo/pjH5p/

<input id="fileToUpload" type="file" name="fileToUpload" />

$(document).ready(function () {    
    addEventToBrowseFileBtn();
    alert('event was bound');
});


function addEventToBrowseFileBtn() {
        $('#fileToUpload').live('change', function () {
            if ($('#fileToUpload').val() == "") {
                return false;
            }
            alert('doing some code stuff');
        });
    };

入力アドバイスは役に立ちます。ありがとう!

いくつかのコメントに基づいてさらに調査を行った後、SO で次の投稿を見つけました: <select> の jQuery 変更イベントが IE で 発生しないように見えます。入力タイプのファイルに対して見つけた他のすべてのソリューションは、回避したいブラウザー検出を使用することを提案しています。

4

1 に答える 1