DC4

INPUT TYPE = FILEタグのクリアでハマった。

INPUT TYPE="file"入力フィ-ルドのクリアでハマったのでメモ。

 

jQuery使用してます。

 

INPUT TYPE="file"に「.change()」を付与して、

 

その中のfunctionで「upload.js」の処理を走らせていたのですが、

 

IEで問題発生

 

一度ファイルパスを指定した後、同じファイルパスをもう一度指定すると、「.change()」の処理が走らない。

 

ならば毎回ファイルパスを消せばいいじゃん!!

 

と思ったのですが、

 

INPUT TYPE="file"はセキュリティの問題から他のタグと同じようにValueの値が書き込めないらしい。

 

IEだけValueを空にできない。

 

色々試行錯誤した結果、

 

元の処理

 

$('#inputFileのID').change(function() {

//upload.jsの処理あれこれ

});

 

 

$("#inputFileを含むPタグ").live("change", function(){

//upload.jsの処理あれこれ

});

 

に変更して、

 

upload.jsの処理あれこれの最後で

 

$("#inputFileを含むPタグ").after($("#inputFileを含むPタグ").clone(true));

$("#inputFileを含むPタグ").remove();

 

こんな感じで丸ごと作り直す事で無事解決。

 

clone()はtrueにしておかないとイベントがコピーされないので注意。