• ベストアンサー

<input type="reset"> の仕様について

いつもお世話になっております。 HTMLのリセットボタンについて、質問させて下さい。 <input type="reset"> を使用した際の、プルダウンの動作なのですが、以下の動作をするのはHTMLの仕様(?)なのでしょうか? ---- 前提条件 ---- <画面初期表示> ○色プルダウン▼ ブランク【初期値】 赤 黄 緑 ○くだものプルダウン▼ ブランク【初期値】 <画面表示時にonLoadで行う処理【配列生成】> 赤くだもの = new Array('りんご', 'いちご'); 黄くだもの = new Array('バナナ', 'レモン'); 緑くだもの = new Array('キウイ', 'メロン'); ---- 質問内容 ---- (1)色プルダウン選択時に、JavaScriptを使用して、くだものプルダウンの内容を生成する。 例)「赤」を選択した場合、くだものプルダウンは ○くだものプルダウン▼ りんご【初期値】 いちご と表示される。 (2)表示されたくだものプルダウンから、「いちご」を選択する。 (3)リセットボタンを押下する。 ********** (3)のオペレーション後の画面表示は、 ○色プルダウン▼ ブランク ○くだものプルダウン▼ りんご になります。 あたかもくだものプルダウンがリセットされていないかのように見えますが、これはHTMLリセットを使用している以上、仕方のないことでしょうか? <input type="reset">でプルダウンのリセットを行う場合は、先頭の要素に戻される、という認識であっていますでしょうか? ご教授お願い致します。 (参考URLを紹介して頂ければ、幸いです。) 宜しくお願い致します。

  • HTML
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
回答No.2

まわりくどい言い方をすると、 その時点の HTML の状態で再描画 という事と考えるべきかと思います。 今回のポイントは JavaScript で HTML を書き換えている事でしょう。 reset される時のそこにある HTML(プルダウン) は JavaScript で書き換えられた物・・・。 そしてそこにも「初期値:りんご」とあります。 「いちご」が選択されていても、reset で「りんご」になる・・・。 尚、プルダウンの選択をしようがリセットをしようが、HTML は書き換わっていません。JavaScript で HTML の情報を拾って確認すると判ると思いますが。 で、対応は既出の様に reset でイベント処理で初期化処理を付加するか、思い切ってページごと再読込させるか・・・。 改めてプルダウンを書き換えるか書き直すか・・・。 意識の注意点。 今回は事前にJavaScript で HTML を書き換えています。 そしてプルダウンの選択も reset も HTML は書き換えていません。というか HTML の機能です。

daisy_k
質問者

お礼

koutarou504さん、ご回答ありがとうございました。 まとめてのお礼になってしまい、申し訳ありません。 今回質問させて頂いた内容は、実は私自身当たり前の動作であると認識していたのですが、「なぜそうなるのか?」ということを、いざ他人に説明しようと思った時に詰まってしまったという内容でした。 ということは、分かっていない、ということなのですよね…。 教えて頂いた内容で、納得することができました。 (ポイントを指摘して下さったので、分かり易かったです。) ありがとうございました。

その他の回答 (1)

回答No.1

resetボタンの動作は、「ページが読み込まれたときの初期状態に戻す」ということになると思います。 先頭ではなく、各オプションにselectedキーワードが付いていたら、selectedがついている要素に戻ります。 今回の場合、くだものプルダウンの初期値は「空」です。 よって、resetを押したとき、初期値が設定されていないので初期値に戻るという動作が行われない可能性があります (ブラウザの実装に依るとおもうので、あくまで可能性とします) くだものプルダウンには後付で動的に内容が生成されています。 これはresetボタンでは戻らないでしょう。 resetは選択された項目をリセットする機能で、後から動的に生成されたドキュメントを戻す機能ではないからです。 なのでresetを押したときにonClickを引っ掛け、プルダウンの中身を削除するようなjavascriptを書けば良いと思われます。

daisy_k
質問者

お礼

twinkleluzさん、ご回答ありがとうございました。 まとめてのお礼になってしまい、申し訳ありません。 今回質問させて頂いた内容は、実は私自身当たり前の動作であると認識していたのですが、「なぜそうなるのか?」ということを、いざ他人に説明しようと思った時に詰まってしまったという内容でした。 ということは、分かっていない、ということなのですよね…。 くだものプルダウンの内容を後から動的に生成していることがポイントなのだということが分かりました。 ありがとうございました。

関連するQ&A

  • プルダウンに追加項目を加える方法

    過去記事にあった下記のプルダウンを使用させて頂いております。 選択できる項目を「くだもの→りんご→●●」ともうひとつ追加 するにはどうしたらよいのでしょうか? どうぞよろしくお願いします。 <html> <head> <script> <!-- /* データ定義部(ここをDB検索結果から生成) */ var dataMain = new Array(   new Array("1", "くだもの"),   new Array("2", "やさい"),   new Array("3", "さかな") ); var dataSub = new Array(   new Array(     new Array("1", "りんご"),     new Array("2", "みかん"),     new Array("3", "いちご")   ),   new Array(     new Array("1", "にんじん"),     new Array("2", "だいこん"),     new Array("3", "きゅうり")   ),   new Array(     new Array("1", "さば"),     new Array("2", "いわし"),     new Array("3", "さんま")   ) ); // プルダウンを初期化 function initSel() {   var selMain = document.forms[0].elements["selMain"];   // メインのプルダウンを初期化   setDataToSel(selMain, dataMain);   // 先頭を選択   selMain.selectedIndex = 0;   // 先頭を選択したのと同じ処理   changeSel(); } // プルダウンを選択したときの処理 function changeSel() {   var selMain = document.forms[0].elements["selMain"];   var selSub = document.forms[0].elements["selSub"];   // メインのプルダウンの選択値によりサブの選択肢データを取得   var data = dataSub[selMain.selectedIndex];   // サブのプルダウンの選択肢を入れ換え   setDataToSel(selSub, data); } // データを選択肢にセット function setDataToSel(sel, data) {   // 選択肢をいったんクリア   for(var i = 0 ; i < sel.options.length ; i++) {    sel.options[i] = null;   }   // 新しい選択肢を作る   for(var i = 0 ; i < data.length ; i++) {   var dt = data[i];    sel.options[i] = new Option(dt[1], dt[0]);   } } //--> </script> </head> <body onLoad="initSel()">  <form>   <p>    メイン:    <select name="selMain" size="1" onChange="changeSel()"></select>   </p>   <p>    サブ:    <select name="selSub" size="1"></select>   </p>  </form> </body> </html>

  • 設定したキーワードを含むリスト表示について

    初めて質問させて頂きます。 現在仕事で、特定ユーザーにのみ公開しているホームページの メンテナンスを担当しており、今度リニューアルすることになりました。 ただ、やりたいことは頭で決まっているのに実現方法の検討もつかず、 ネット検索でも限界を感じています。 以下にやりたいことを簡単な例に置き換えて記載しましたので、 実現方法についてアドバイス頂けたらと思い投稿しました。 どなたかご親切な方、宜しくお願い致します。 ■用意するHTMLファイル 【果物のHTMLファイル】    いちご.html : 500円 赤 スーパー    バナナ.html : 300円 黄色 コンビニ    みかん.html : 300円 オレンジ スーパー/コンビニ    リンゴ.html : 300円 赤 コンビニ 【値段検索ページ】 【色検索ページ】 【販売店舗検索ページ】 ■やりたいこと 上記「各果物のHTMLファイル」に、値段、色、販売店舗に関する キーワードを設定しておきます。 各検索ページを開いた時の表示状態は、以下の通り キーワード毎に自動的にリスト表示されるようにしたいです。 ■各検索ページを開いた時の表示状態 【値段検索ページ】    500円     - いちご.html    300円     - バナナ.html     - みかん.html     - リンゴ.html 【色検索ページ】    赤     - いちご.html     - リンゴ.html    黄色     - バナナ.html    オレンジ     - みかん.html 【販売店舗検索ページ】    スーパー     - いちご.html     - みかん.html    コンビニ     - バナナ.html     - みかん.html     - リンゴ.html 「果物のHTMLファイル」にはどのようにキーワードを設定すればよいでしょうか? また、各「検索ページ」にはどのような記述を行えば「果物のHTMLファイル」に 設定したキーワードを自動抽出→リスト表示できるのでしょうか? HTML 初心者なので、難しいことは残念ながらできません。 もし、"この書籍に付属の DVD にやりたいことが実現できるコードが含まれているよ" など、ご存じのことがあれば是非教えてもらえないでしょうか。 宜しくお願い致します。

  • 3歳10ヶ月の息子、色や果物の名前を覚えられない

    息子は、色が分かりません・・・赤色を指差して、これは、何色?と言うと息子の好きなミニカー(色が赤)の名前が出てきます。どの色でもそうです。色の名前だよと言うと分からないと答えます。いくら教えてもこんな感じです。 果物も同じです。いちごをどうしてもりんごと言います。どうしたら息子は覚えてくれるでしょうか?

  • WordPressのフォームについて質問です。

    Contact Form 7を使ってお問い合わせフォームを作りたいのですが 2段形式のドロップダウンを作りたいと思っております。 プルダウン1で選んだ項目によってプルダウン2に表示される内容を変更したいと思っています。 例 ●プルダウン1 【色を選択】 赤 青 緑 ●プルダウン2 【項目を選択】 赤─┬太陽   └イチゴ 青─┬海   └箱 緑─┬野菜   └木

    • 締切済み
    • CSS
  • ボタン押すたびに文字を送りたい

    ボタンを押す度に、文字を下に送りながら残していく関数を作りたいと 思っているのですが、配列を作り、ボタンを作るところまでしか わかりません。文字はHTML上に書きたいです。 var kudamonoList = new Array(6); kudamnoList[1] = "いちご"; kudamnoList[2] = "りんご"; kudamnoList[3] = "なし"; kudamnoList[4] = "ぶどう"; kudamnoList[5] = "もも"; function getNumber() { <input id="button1" type="button" value="押す" onclick="getNumber()" > どのように作ればよいか、コードを教えてください。よろしくお願いします。 表示例) 1回目ボタンにて:いちご 2回目ボタンにて:りんご          いちご 3回目ボタンにて:なし          りんご          いちご

  • チェックボックス(複数選択可)の値をPOST送信し、

    果物テーブルの中身を入力フォームにて、チェックボックスにより選択 得られた果物コードをSELECT文により、果物名に変換して表示 保存時は好きな果物1、好きな果物2、好きな果物3、、カラムにコードを保存。 例)あなたの好きな果物は? りんご  みかん  いちご  メロン (チェックボックスにより選択) 果物テーブル: 1 りんご 2 みかん 3 いちご 4 メロン 入力フォームよりPOSTにて選択された果物のコードを送信 入力確認画面にて得られたコードより果物名に変換 選択されたコードを保存 上記のようなイメージです。 例えば、りんご、みかん、いちごを選択された場合、(1,2,3)が得られ、これを分解してSELECTする方法が分かりません。 すなわち配列の操作になるかと思われます。 (1,2,3)コードは取得出来ています。 以上、ご教授頂けたら助かります。

    • ベストアンサー
    • PHP
  • htmlやCGIでのデータの送信について

    今ホームページを作っています。 登録のフォームがあって、その中にプルダウン形式で選んでもらうものがあります。 その選択されたデータをリストとして表示させるのと、それの画像を表示させたいのですが上手くいきません。 実際とは違いますが例として、 プルダウン形式で「りんご、みかん、いちご」のうち「りんご」を選択してもらったとして、そのデータをリストとして表示するページで「りんご」とそのまま表示させるのと、「りんごの画像」を表示させたいのです。 色々と試してみて「りんご」とそのまま表示させるのはできたのですが、画像のほうがプルダウン形式で選択されたデータを引っ張ってきて「http://アップロード先のurl/データ名.jpg」にしてるのですが、データ名が「りんご」なので日本語になってしまい、ファイル名はもちろん英語なので表示させることができません。 すごく初歩的な質問で恐縮なのですが、どなたか教えて頂けないでしょうか・・・。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • javascriptで文字列を取り出したいです。

    下記のようなHTMLソースから果物の文字列を取り出したいです。 りんご、赤、果物、100円などの内容が変わっても平気なように、[種類]に注目して右にある文字列を取れるようにしたいのですが方法がわかりません。 どなたか解答をお願いします。 <body> <pre> [名前] りんご [色] 赤 [種類] 果物 [値段] 100円 </pre> </body>

  • プルダウンメニューに連動するチェックボックスのdisable切り換え

    こんにちわ。 表記の件ですが、プルダウンメニューに連動するチェックボックスのdisableを切り換えたいと思っているのですが、なかなか上手くいきません・・・。 例えばプルダウンメニューにおいて ・食べ物 ・生き物 ・果物 ・穀物 というようなメニューがあり、さらにチェックボックスとして ・お米 ・りんご ・さかな ・みかん というチェックボックスがあるとします。 この場合、[食べ物]を選択すると全てが選択できるようになり、[果物]を選択すると[りんご]と[みかん]以外は無効(チェックボックスの選択ができない状態)となるスクリプトを作成したいということです。 もし、先行していずれかのチェックボックスが有効になっていて、プルダウンメニューを切り換えた場合はアラートと同時にチェックボックスをリセットするようできると尚素敵です。 皆様のお知恵を拝借できればと思います。 何卒お力添えいただければ幸いです。

  • プルダウンメニューで「りんご」を選択したら、「100円」と表示されるように。

    いつもお世話になっております。 今回も宜しくお願いします。 Excelの入力規則の設定で、プルダウンメニューを「りんご」「みかん」「いちご」「メロン」としているとして 希望することは  「りんご」を選択したら「100円」、「みかん」を選択したら「50円」・・・ と表示されるようにしたいのですが、何かいい方法はありませんでしょうか? セルをふたつ使用する他はないでしょうか? 現在は プルダウンメニューを金額にしています。 できれば、「りんご」「みかん」・・としたいのですが。 宜しくお願い致します。