電子書籍の厳選無料作品が豊富!

<FORM NAME="form1">
<IMPUT TYPE="text" NAME="text1">
<IMPUT TYPE="file" NAME="file1">
</FORM>
入力フィ-ルドを<INPUT TYPE="reset">を使わずに
クリアしたいのですが
textフィ-ルドは
this.form1.text1.value="";
でクリアできるのですが
fileフィ-ルドは
this.form1.file1.value="";
では、クリアできません
"reset"と同じようにどうすればクリア出来ますか。
よろしくお願いします。

A 回答 (3件)

<input type="file" />のvalueを入力以外で変更できないのはhtmlの仕様です。



私も以前Webアプリケーションを作成した際に
同様の問題で四苦八苦した事があります。
私の場合は初期値をセットしろ、という話だったのですが。

話が逸れましたので本題へ戻ります。
hana3090さんの場合はfileフィールドのみクリアしたいとの事ですので、
itochandaさんが仰っているように、reset()後に他のフィールドに入れなおしが妥当かと。

function hoge(form)
{
temp = form.text1.value;
form.reset();
form.text1.value = temp;
}

関数を作成する場合であればこのようにしてはいかがでしょうか。

ただ、入力フィールドが1つではないという事も考えられますので、
その際には各タイプ毎に配列にしまってやって、reset()後、
その逆をしてやるだけで実現できると思います。
    • good
    • 0
この回答へのお礼

ありがとう御座いますおかげさまで四苦八苦せずに
出来ました、これからもよろしくお願いします。

お礼日時:2004/07/28 20:36

document.form1.file1.value="";


を試したら(Mozilla)、セキュリティエラーが出ています。(ローカルのファイル名などにアクセスできるから?)

#1さんの、
document.form1.reset();
の後に、それ以外のを書き戻すってのはどうでしょう?
    • good
    • 0

こんにちは。



document.form1.reset();

でクリアできます。

この回答への補足

解答ありがとう、
<INPUT TYPE="file" NAME="file1">
このフィ-ルドのみクリアしたいのですが

補足日時:2004/07/27 12:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!