• ベストアンサー

<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"> このフィ-ルドのみクリアしたいのですが

関連するQ&A

  • フォームへの前回入力値をクリアーする方法は?

    以下のコードでフォームへの前回入力値を保持しています。 送信前は"RESET"ボタンで入力値をクリアーできますが、送信後は入力値をクリアーできません。(RESETボタンをクリックしても送信済$_POSTが表示されます)おそらくブラウザのキャッシュで$_POSTの値が保持されているためと思われますが、何らかのボタンクリックでこれらの$_POST値をクリアする方法をご存知に方、是非ご教授ください。 <?php $yyyy=$_POST[Y]; $mm=$_POST[M]; $dd=$_POST[D]; ?> <FORM action="<?=$_SERVER[PHP_SELF]; ?>" method="post" > <P>YYYY<INPUT size="10" type="text" name="Y" value="<?= $yyyy;?>"></P> <P>MM<INPUT size="10" type="text" name="M" value="<?= $mm;?>"></P> <P>DD<INPUT size="10" type="text" name="D" value="<?= $dd;?>"></P> <INPUT type="submit" name="submit" value="送信"> <INPUT type="reset" name="reset" value="reset"> </FORM>

    • ベストアンサー
    • PHP
  • input type="file"のvalue監視

    input="file"のvalue値が変更されたら別のテキストフィールドに表示するというScriptを書いたのですが動作してくれません。 input="file"ではなく普通のテキストフィールドならば動作します。 fileフィールドでは動作しないのでしょうか。それとも書き方がまずいのでしょうか。 以下、ソースです。 <html> <head> <title>test</title> <script type="text/javascript" src="/javascript/prototype.js"></script> </head> <body> <form action="" enctype="multipart/form-data" method="post"> <input id="file_test" name="file_test" type="file"> <br> <div id="result">表示</div> <script type="text/javascript"><!-- window.onload = function() { new Form.Element.Observer('file_test', 1, function(element, value) { document.getElementById('result').innerHTML = value; }); } //--></script> </form> </body> </html> よろしくお願いします。

  • input type="file"に入力するには?

    わからなかったので質問させてください。 inputtype="text"のときは入力できたのですが以下の方法で入力できたのですがfile場合はできないのでしょうか?。 入力したいのはファイルパスです。 ファイルパスを入力して画像ファイルをアップロードさせてたいのですがどのようにすればいいでしょうか。 どなたかご教授ください。 <input type="file" name="file" size="30"> WebBrowser1.Document.All.GetElementsByName("file")(0).InnerText = TextBox1.Text

  • JavaScriptのfileオブジェクト(input type="file")の選択を初期化したい

    fileでユーザーが選択したファイルを、未選択の状態にしたいのですができません。 valueプロパティを""にしてもnullにしても、元の値(ファイルパス)が入ったままです。 HTML: <input type="file" name="picture_file"> JavaScript: document.form_main.picture_file.value = ""; alert(document.form_main.picture_file.value); document.form_main.picture_file.value = null; alert(document.form_main.picture_file.value); どうにかして初期化する方法はありますでしょうか?file以外のほかのinput項目は変更せず、また画面遷移もせず実現する必要があります。

  • formの中で別のactionをもったsubmitボタンの設置。

    formの中で別のactionをもったsubmitボタンの設置。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>sample</title> <script language="JavaScript" type="text/javascript"> <!-- //<クリックした時に実行される関数> //*** 送信画面 function func1(form){ document.form1.text.value =form.text.value; document.form1.file.value =form.file.value; document.form1.dummy.value =form.dummy.value; document.form1.submit(); } //*** ユーザー追加画面 function func2(form){ document.form2.text.value =form.text.value; document.form2.file.value =form.file.value; document.form2.dummy.value =form.dummy.value; document.form2.submit(); } //--> </script> </head> <body class="index"> <form enctype="multipart/form-data"> <table id="table" width="100%"> <tr><th width="10%">テキスト</th><td><input type="text" name="text"> <br /> <div style="text-align:left;"> <input type="button" onClick="func2(this.form)" value="テキスト確認"> </div> </td></tr> <tr><th width="10%">添付</th><td><input type="file" name="file"></td></tr> </table> <div style="text-align:left;"> <input type="button" onClick="func1(this.form)" value="確認"> </div> </form> <!-- sousin.php画面へ --> <form method="post" name="form1" action="sousin.php" enctype="multipart/form-data"> <input type="hidden" name="text"> <input type="hidden" name="file"> <input type="hidden" name="dummy"> </form> <!--- text.php画面へ ---> <form method="post" name="form2" action="text.php" enctype="multipart/form-data"> <input type="hidden" name="text"> <input type="hidden" name="file"> <input type="hidden" name="dummy"> </form> </body> </html> 上記のように記述し、フォームの中に別のactionをもったsubmitボタンを設置しました。 textの内容は渡せるのですが、添付したいファイルを渡すことができません。 添付ファイルも渡せるようにするにはどうすればよいのでしょうか

    • ベストアンサー
    • HTML
  • <input type="file"/>

    に文字列をセットするために <form> <input type="file" id="x"/> </form> <input type="button" onclick="f()" value="push"/> <script> function f() { var e=document.getElementById("x"); e.value="x.txt"; } </script> としてもセットできません <form> <input type="text" id="x"/> </form> <input type="button" onclick="f()" value="push"/> <script> function f() { var e=document.getElementById("x"); e.value="x.txt"; } </script> であればセットできるのです どうしたらセットできるでしょうか?

  • javascriptでのアラート表示

    javascriptで大変困っております。 ラジオボタン・テキストエリアにまたがったチェックアラートをだしたいのですが、うまくいきません。 <script> function form_check(f) { if (f.Q1.value == "") { alert("・未記入です!"); return false; } ・ ・ ・ if (f.Q6.value == "") { alert("・名前が未記入です!"); return false; } else return true; } function reset_conf() { if (confirm("フォーム内容をリセットします!\n\nよろしいですか?")) return true; else return false; } </script> -------- <FORM ACTION="hogehoge.cgi" METHOD="POST" onSubmit="return form_check(this)"> 教育:<INPUT TYPE="radio" NAME="Q1" VALUE="OK"> テスト:<INPUT TYPE="radio" NAME="Q2" VALUE="OK">  アンケート:<INPUT TYPE="radio" NAME="Q3" VALUE="OK"> AAA:<input name="Q4" type="text" /> BBB:<input name="Q5" type="text" /> CCC:<input name="Q6" type="text" /> <INPUT TYPE="hidden" NAME="number" VALUE="6"> <INPUT TYPE="submit" NAME="answer" VALUE="送信する"> <INPUT TYPE="reset" NAME="reset" VALUE="リセット"> </FORM> </form> ------- テキストエリアのアラートチェックは出来ない状態です。 すべてにチェックまたは、テキスト入力がされていないと送信できないようにしたいのです。 どうしたらよいでしょうか?

  • WEBの入力フォームについて

    昨年の同じ時期に入力フォームについて質問し、回答をいただいたのですが、少し使い勝手を改善したく再度質問いたします。 テキストボックス A ラジオボタン 1、2、3 テキストボックス B テキストボックスAに入力後、ラジオボタンで2を選択すると、テキストボックスBに自動的に入り、1及び2の場合はブランク(入力不可)というものです。 以下が前回回答をいただいたものです。 改善したいところは、最初にこのファイルを呼び出したときにはテキストボックスBに入力できてしまうところです。その後ラジオボタンを動かすと2選択以外には入力はできなくなりますが、はじめから入力不可にしたいと思っています。(ラジオボタンの初期値は1です。) また、2を選択後、テキストボックスBにカーソルを当てると左下のステータスバーにエラーと表示されるのはしかたのないことでしょうか。(テキストを修正することもありえるので、2を選択した場合は自動で入りつつ修正もできるようにしたいです。) 以上、よろしくお願いします。 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> <script language="JavaScript" type="text/JavaScript"> function copyab(f){ f.elements["name3"].disabled=false; f.elements["name4"].disabled=false; f.elements["name3"].value=f.elements["name1"].value f.elements["name4"].value=f.elements["name2"].value; } function clearb(f){ f.elements["name3"].value=""; f.elements["name4"].value=""; f.elements["name3"].disabled=true; f.elements["name4"].disabled=true; } </script> <FORM>A1 <INPUT type="text" name="name1"> A2<INPUT type="text" name="name2"><BR> 区分 <INPUT name="address" type="radio" value="1" onclick="clearb(this.form)" checked> 1 <INPUT name="address" type="radio" value="2" onclick="copyab(this.form)"> 2 <INPUT name="address" type="radio" value="3" onclick="clearb(this.form)"> 3<BR> B1<INPUT type="text" name="name3" onfocus="if (!agree)this.blur();" onchange="if (!agree)this.value='';"> B2<INPUT type="text" name="name4" onfocus="if (!agree)this.blur();" onchange="if (!agree)this.value='';"> </FORM> </BODY> </HTML>

  • JavaScript text内にある文字のコピーの仕方について

    お世話になります。 現在作成中の テキスト内の文のバックスペースと テキスト内をクリアーは 下記の文となりプログラム上問題は御座いません。 <FORM name="a1"> <INPUT type="button" value="クリアー" onclick="document.a1.reset()"> <INPUT type="button" value="バックスペース" onclick="document.a1.a2.value=document.a1.a2.value.substring(0,document.b.c.value.length-1)"> <INPUT size="100" type="text" name="a2"></FORM> 出来ないのがボタンを押すとテキスト内の文字を コピーするという記述なのですが もし解られましたら お手数ですがお教え頂ければ幸いです。

  • ラジオボタンを選択したらテキストに数字入力

    ラジオボタンを選択してvalueが1だったら、テキスト欄(Q1_TEXT)に0を入力し、それ以外だったら何もしない、というJavascriptを書きたいです。ラジオボタンによって、テキスト欄の有効化、無効化に関する書き方は見つけられたのですが、このような挙動について見つけることができませんでした。 ご存じの方がおられましたらご教示いただけますと助かります。 よろしくお願いいたします。 <body> <form> <INPUT type="radio" name="Q1" value="1"> <INPUT type="radio" name="Q1" value="2"> <INPUT type="radio" name="Q1" value="3"> <INPUT type="text" name="Q1_TEXT" value="_Q1_TEXT_CHK_" SIZE="7"> </form> </body>

専門家に質問してみよう