入力欄の消去方法について

このQ&Aのポイント
  • 在る欄に回答を入力させるようなcgiを作成しています。システム的に内容をチェックし、結果がngの時にngだった内容を表示しています。同じ画面で誤った箇所の再入力をさせようとしています。
  • 質問者は「クリア」ボタンを使用して、システムで表示した内容を消すことができるか尋ねています。現在の書き方ではその機能は実現できません。
  • そのため、別の方法を探す必要があります。
回答を見る
  • ベストアンサー

入力欄の消去方

お世話になります。 早速ですが、 在る欄に回答を入力させるようなcgiを作成しています。 そしてシステム的に内容をチェックし、 結果がngの時にngだった内容を表示しています。 そして同じ画面で誤った箇所の再入力をさせようとしています。 (答えが合うまで繰り返しています。) 画面上には、 入力する前に当該箇所(システムで表示した内容)をクリアできるように 以下のような「クリア」ボタンを付けています。 <input type="reset" value="クリア"> ここで質問ですが、 このボタンだとシステム(cgi)で表示した内容は消せません。 (ユーザーが入力した内容は消せるのですが) この書き方では駄目なのでしょうか。 消すにはどんな書き方があるのでしょうか。 宜しくお願いします。

  • Perl
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.1

お気付きのとおり、 <input type="reset" ...> は入力欄内容をロード時点の戻すのが本来の機能です。 ロード時点で何かが入っていた入力欄をクリアするにはJavaScriptでプログラミングする必要があります。 プログラミングなので、どこかに 「type="clear"」と書けば済む様な簡単なものではありません。 例えばクリアしたいのが<input type="text" ...>であれば、参考URLの element.value を使用して、それに空文字列を代入すれば良いでしょう。 element をどう取得するかがキモですが、クリアしたい inputタグに id を付けておいて document.getElementById() するのが万能で簡潔です。 いずれにせよ、JavaScript でDOM操作するための勉強が不可欠です。

参考URL:
http://javascriptist.net/ref/element.value.html
nagahaha
質問者

お礼

早速有り難うございました。 了解しました。 私が思いこんでいたのは、 reset=「何でも消せる」だったのですが、 消せるではなく、ロード時点に戻すだったのですね。 javascriptは全くなので、今後にしたいと思います。 対策として、 誤回答は入力欄ではなく別な行に印字し、 入力欄はスペースのままで表示するようにします。 これでも目的は達せられますので。 お世話になりました。

その他の回答 (1)

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.2

お気付きのとおり、 <input type="reset" ...> は入力欄内容をロード時点の戻すのが本来の機能です。 ロード時点で何かが入っていた入力欄をクリアするにはJavaScriptでプログラミングする必要があります。 プログラミングなので、どこかに 「type="clear"」と書けば済む様な簡単なものではありません。 例えばクリアしたいのが<input type="text" ...>であれば、参考URLの element.value を使用して、それに空文字列を代入すれば良いでしょう。 element をどう取得するかがキモですが、クリアしたい inputタグに id を付けておいて document.getElementById() するのが万能で簡潔です。 いずれにせよ、JavaScript でDOM操作するための勉強が不可欠です。

参考URL:
http://javascriptist.net/ref/element.value.html

関連する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
  • 動作がしないときのチェックポイント

    ホームページをいじっていたら正しく動作しなくなっ てしまいました. 現象 当該ページの送信ボタンをクリックするとアンケート結果をメールで送信するのですが送信されません. 原因 よくわからないのにあれこれいじってしまったため. 調べた事(手がかり) 当該アンケートから送信されたメールを見てみると冒頭にSCRIPT_NAME :/cgi-bin/form2mail.cgi となっています. 当該送信をするボタンに対応するHTMLは下記のようになっています. </SELECT> <DIV align="center"> <INPUT type="SUBMIT"value="送信" name="SUBMIT2"> <INPUT type="checkbox" name="_check" value="1" checked> 写しを表示する   <INPUT type="RESET" value="リセット" name="RESET"> <INPUT type="hidden" name="sendto" value="「メールアドレスが入っています」"> <INPUT type="hidden" name="_location" value="http://「ホームページのアドレスが入っています」"> 当該ページのアンケートに項目を追加しようとして作業をしていたところ動作しなくなりました. あらかじめ保存しておいた当該ページのコピーを戻しましたが復旧しません. なにか特別な作業がいるのでしょうか?一般的なことで結構ですのでチェックポイントになりそうなところについてアドバイスをいただけないでしょうか.

    • ベストアンサー
    • HTML
  • フォームのボタンを画像にする方法?

    フォームのクリアや送信ボタンを画像に置き換えたいのですがどうすれば良いのでしょうか? これを画像ボタンにしたいのですが... <input type="reset" value="クリア"> <input type="submit" value="送信" > お手数ですがお知らせ下さい。

  • ボタンの判定が出来ません?

    print "<P><INPUT TYPE=submit NAME=\"送信\" VALUE=\"送信\"> <INPUT TYPE=submit NAME=\"削除\" VALUE=\"削除\"> <INPUT TYPE=reset NAME=\"クリア\" VALUE=\"クリア\">\n"; 上記のようなコーディングで、ボタンを表示させてますが、 どちらのボタンを押しても、送信しか受け取れません。 どこで、何をどのようにコーディングすれば読みとれるのでしょうか?

    • ベストアンサー
    • Perl
  • メール送信フォームで。

    CGI初心者です。 下記メールフォームで「内容確認画面を出さないで送信する」の文を削除して、 チェックボックスも削除したいのです。 ただ、フォーム上では削除されているように見えても、送信ボタンをクリックすると、すぐ確認画面が自動的に出てくるようにするにはどうたしら良いのでしょうか。 cgiファイルの設定で行うのでしょうか? 質問に不備がありましたら、補足致しますので、よろしくお願いします。 <input type="submit" VALUE="確認"> <input TYPE="reset" VALUE="リセット"> <input type="checkbox" name="no_check" value="on">内容確認画面を出さないで送信する</font>

    • ベストアンサー
    • CGI
  • 携帯サイト フォームのカスタマイズについて

    今回初めて携帯での応募サイトを作成したのですがフォームのカスタマイズで分からないことが多く困っています。 レンタルサーバー上の、CGIフォーム作成ツールを使用して簡単な入力フォームを作りました。 自動で生成されたクリアボタンを、テキストリンクでのクリア機能に修正したいのですが、その修正自体可能なのか、可能であればどのようにしたら良いかがわかりません。↓のソースをどのように修正すればよいか教えていただけませんでしょうか? <INPUT TYPE="reset" VALUE="クリア">

    • ベストアンサー
    • CGI
  • 再度・ボタンの判定が出来ません?

    前回と同じ質問で、不可能との解答で締め切りましたが、 可能との意見が有るみたいですので、再度上げさせてもらいます。 print "<P><INPUT TYPE=submit NAME=\"送信\" VALUE=\"送信\"> <INPUT TYPE=submit NAME=\"削除\" VALUE=\"削除\"> <INPUT TYPE=reset NAME=\"クリア\" VALUE=\"クリア\">\n"; 上記のようなコーディングで、ボタンを表示させてますが、 どちらのボタンを押しても、送信しか受け取れません。 どこで、何をどのようにコーディングすれば読みとれるのでしょうか?

  • JAVAスクリプトでのFORM入力チェックの方法

    JAVAスクリプトでのFORM入力チェックの方法を教えてください。 ネットでいろいろ探してはめ込んだのですが、動作するプログラムが下記のしかありませんでした。 ラジオボタンの入力チェックとプルダウンの入力チェックを同時にしたいのですがよくわかりません。 今の状態ではラジオボタンをチェックしても未入力のアラートが出てしまいます。 あとこれにプルダウンの入力チェックをつけたいのですが… すいませんがどなたか教えてください。よろしくお願いします。 function Form_Validator(theForm) { var flag=false; var i; for(i=0; i<theForm.OPT-00-06.length; i++){ if (theForm.OPT-00-06[i].checked){ flag = true; break; } } if(!flag){ alert("\"OPT-00-06\" にチェックしてください。"); return (false); } if(confirm("入力もれはありません。")){ return (true); }else{ return (false); } <form name="form1" method="POST" action="~cgi?" onsubmit="return Form_Validator(this);"> ・ ・ <input type="radio" name="OPT-00-06" value="A"> <input type="radio" name="OPT-00-06" value="B"> ・ ・ <select name="OPT-00-07"> <option value="">選択してください</option> <option value="80">80</option> <option value="81">81</option> ・ ・ ・ <select name="OPT-00-08"> <option value="">選択してください</option> <option value="35">35cm</option> <option value="36">36cm</option> ・ ・ ・ <input type="submit" value="カートに入れる" name="submit">   <input type="reset" value="内容をクリア" name="reset"> </div> </form>

  • CGI内での条件分岐について教えてください。

    CGI内での条件分岐について教えてください。 買い物カートCGIの中で下記のラジオボタンの選択において入力フォームを表示・非表示に切り替える質問をしたばかりですが、 <input type="radio" value="1" onclick="func1()" name="gift" checked />1ヶ所 <input type="radio" value="2" onclick="func2()" name="gift" />3ヶ所 <input type="radio" value="3" onclick="func3()" name="gift" />5ヶ所 今度は入力後の確認画面にて上記で選択された内容によって。。。 value1の場合は1ヶ所分の発送先住所、value2の場合は3ヶ所分の発送先住所・・・ と言った感じで表示をさせたいのですが、条件分岐に関してどのようにしたら良いのか分からず質問をさせて頂きます。 require "cgi-lib.pl"; ReadParse(*input_data); if ($input_data{'gift'} eq "1") {  ※value1で入力した1件分の発送先住所 } elsif ($input_data{'gift'} eq "2") {  ※value2で入力した3件分の発送先住所 } else {  ※value3で入力した5件分の発送先住所 } とか、試してみましたがだめでした(泣 CGI(Perl)に関しては初心者的で少々初心者レベルで触る程度の技術レベルです(汗 どうしたら良いのか教えてください。 思い当たる点は、そもそも条件式の中にある"gift"はどこかで指示を出さないとCGIの中で認識されていないのでは?とも思っています。 実際に上記の例でカートの確認ページを表示すると、 if ( eq "1") { } else ( eq "2") { } else { } と表示されるので素人ながらそう思いました。 質問がへたですが宜しくお願いします。

  • 入力欄とそれを入力中にエンターを押した時の、ボタンの連動方法

    文章で書くと分かりにくいかもしれませんが、 入力枠(<input type="text" ...)が2つあり、 それに対応するサブミットボタンも1つづつあるとします。 各入力枠に入力中に、エンターを押した時のボタンを 自動的に適応させるにはどうしたらよいでしょうか。 ・・・やっぱり、文章だと分かりにくいかもしれませんが・・・。 例えば、ぐーぐるの検索結果画面だと、画面上部にも 下部にも、検索条件入力欄があって、それぞれ、右側に検索実行のボタンがありますよね。 そのボタンは、上の入力欄にフォーカスを当てると、 上のボタンにエンターのフォーカス(?)が自動的にきますよね。 下の入力欄にフォーカスを当てると、下のボタンにエンターのフォーカス(?)がきます。これのやり方がしりたいです。 JavaScriptの話ではないかもしれませんが・・・。 どなたか教えてください。お願いします。

専門家に質問してみよう