0

私は持っている

<input type="file" id="file" onchange="filename();" /> <div id='filename'></div>

関数は次のようになります

function filename() {
var input = document.getElementById("file");
if (filename == null) {
   document.getElementById("filename").innerHTML = "";
   return false;
}

var lastIndex = filename.lastIndexOf("\\");
if (lastIndex >= 0) {
   filename = filename.substring(lastIndex + 1);
}
document.getElementById("filename").innerHTML = "The filename is: "+filename+".";
}

私のコードは上記に似ており、正常に動作しますが、ファイルの選択をクリックしてからファイルを選択すると、ファイル名が表示されます。その後、[ファイルを選択] をクリックすると、[キャンセル] をクリックします。ファイルはもうロードされていませんが、ファイル名を示すテキストはまだそこにあります。ファイルフィールドを常に自動的にリッスンし、ファイルの値が空の場合にファイル名を変更する、使用できるコードはありますか?

JavaScriptまたはjQueryを使用してこれを行いたいです。

編集

$("document").ready(function(){
    $("#file").change(function() {
         alert('changed');
    });
});

これにより、選択された新しい画像が検出され、ファイル選択ウィンドウが終了したとき (キャンセルを押したとき)、ファイルの名前属性が検出されます。これは私が望んでいたものです。

4

1 に答える 1

0

「ロードされた」または「テキスト」が何を意味するのか完全にはわかりません。ロードされたということは、入力ボックスに表示されることを意味しますか? テキストは、ファイル名の div 内のテキストを意味しますか?

ファイル名 div のテキストは、入力ボックスが変更された場合にのみ変更されます。キャンセルを押しても、入力ボックスは変更されません。

キャンセルを押した後に入力ボックス内のファイルが消えた場合、それは起こるはずです。

また、関数のファイル名をnullと比較しています。あなたはinput.valueを使いたいかもしれません

于 2013-01-25T09:14:15.413 に答える