• ベストアンサー

<IMPUT TYPE="file">入力フィ-ルドのクリア

<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"と同じようにどうすればクリア出来ますか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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()後、 その逆をしてやるだけで実現できると思います。

hana3090
質問者

お礼

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

その他の回答 (2)

  • itochanda
  • ベストアンサー率36% (8/22)
回答No.2

document.form1.file1.value=""; を試したら(Mozilla)、セキュリティエラーが出ています。(ローカルのファイル名などにアクセスできるから?) #1さんの、 document.form1.reset(); の後に、それ以外のを書き戻すってのはどうでしょう?

  • President
  • ベストアンサー率57% (12/21)
回答No.1

こんにちは。 document.form1.reset(); でクリアできます。

hana3090
質問者

補足

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