• ベストアンサー

HTMLセレクトメニューの選択状態変更

Javascriptで、HTMLの選択状態を変更するにはどうしたらよいか、お分かりになる方がいましたら教えていただければと思います。 下記の例でいくと、AからBにページを更新せずに変更(表示も)したいのです。 <select> <option value="1" selected>A</option> <option value="2">B</option> </select>

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

なるほど・・・ それではonChangeメソッドをつかって こんな感じでどうでしょう? <script language=javascript> function check(obj){ var s=obj.form.select1 for(var i=0;i<s.length;i++){ if(s.options[i].value==obj.value){ s.options[i].selected=true return } } } </script> <form name="form1"> <input type="text" name="text1" onChange="check(this)"> <select name="select1"> <option value="code1" selected>A</option> <option value="code2">B</option> <option value="code3">C</option> <option value="code4">D</option> </select> </form>

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

なにをしたときに変更したいのでしょう? ページを読んだときにかえていいなら <script language=javascript> window.onload=function(){ document.form1.select1.selectedIndex=1 } </script> <form name="form1"> <select name="select1"> <option value="1" selected>A</option> <option value="2">B</option> </select> </form> また、Bに変更するというのもあいまいです。 上の例ではselectの上から2番目(要素番号1)を選んでいますが valueが2要素を選ぶ、テキストがBの場合選ぶなど、 細かい設定ができますので、仕様をきちんとかかないと まっとうな回答はつきませんよ

gaogao30
質問者

お礼

ご回答ありがとうございます。 そして、言葉足らずで申し訳ありません。 つまり、こういうことがしたいのです。 <form name="form1"> <input type="text" name="text1"> <select name="select1"> <option value="code1" selected>A</option> <option value="code2">B</option> </select> </form> 基本はセレクトメニューからデータを選択するのですが、選択したいデータのコード(optionタグのvalue値)がわかっている場合、テキストボックス(text1)にコードを入力すれば、自動的に該当のデータがセレクトメニューから選択されるという処理をしたいのです。 説明が下手ですが、お分かりいただけましたでしょうか?

関連するQ&A

  • セレクトメニュー選択でもう一つセレクトメニューを出す

    「ブロック名」のセレクトメニューを選択すると、選択した項目によってもう一つ「部署名」のセレクトメニューが出て選択するようにしたいと思い、途中まで作成しました。 しかし、「ブロック名」を「Aブロック」選択しても「部署名」が「Bトップ~」が出てしまいます。 何がおかしいのか分からないので、ぜひ教えてください。 よろしくお願いいたします。 menuItem = [  ["Aトップ","A本部","B本部","C本部"], ["Bトップ","1本部","2本部","3本部"], ["Cトップ","あ本部","い本部","う本部"],         ["Dトップ","●本部","▲本部","◆本部"] ]; function setMenuItem(n) { len = document.form2.BUSYO.options.length; for (i=0; i<len; i++) { document.form2.BUSYO.options[i] = null; } document.form2.BUSYO.style.visibility = "visible"; for (i=0; i<menuItem[n].length; i++) { document.form2.BUSYO.options[i] = new Option(menuItem[n][i],menuItem[n][i]); } ---------------------------------------------------------------- <SELECT size="1" name="Block" onChange="setMenuItem(this.selectedIndex)"> <OPTION selected value="0">選択してください</OPTION> <OPTION value="a-block">Aブロック</OPTION> <OPTION value="b-block">Bブロック</OPTION> <OPTION value="c-block">Cブロック</OPTION> <OPTION value="d-block">Dブロック</OPTION> </SELECT> <SELECT size="1" name="BUSYO" style="visibility:hidden"> <OPTION selected value="0">選択してください</OPTION> </SELECT>

  • セレクトメニューのリセットについて

    <select name="Q1_VALUE"> <option value="1" selected >AAAA</option> <option value="2" selected >BBBB</option> <option value="3" >CCCC</option> <option value="4" >DDDD</option> </select> <select name="Q2_VALUE"> <option value="1" selected >1111</option> <option value="2" >2222</option> <option value="3" >3333</option> </select> 上記セレクトメニューでQ1_VALUEの選択肢を変更した場合Q2_VALUEの選択肢をデフォルトに戻す方法を教えて下さい。

  • PHPでセレクトメニュー

    こんにちは。 PHPでDBから読み込んだ値によってセレクトメニュー、selected のタグが付く場所を変えたいんですが、自分の知識だけだと長文になってしまい短くできないものか悩んでます。 例えば値が1-3で、対応する値がA-Cだとすると、 <select name="menu"> <option value="1" selected>A</option> <option value="2">B</option> <option value="3">C</option> </select> で、データを受け取った値によって selectedの位置を"2"の後、"3"後に変更したいです。 自分で書くと <?php if ( $row["menu_c"] == 1){ <option value="1" selected>A</option> <option value="2">B</option> <option value="3">C</option> }elseif( $row["menu_c"] == 2){ <option value="1">A</option> <option value="2" selected>B</option> <option value="3">C</option> ・・・ <option value="3" selected>C</option> } ?> のようになり、項目数分だけ毎回書き足す事になってしまします。 お分かりになる方ご教授頂けないでしょうか。

    • ベストアンサー
    • PHP
  • javascriptでセレクトボックスを動的に

    javascriptでセレクトボックスの"selected"を動的に変更する方法を教えてください>< 下記のselectedを"10"から"50"に変更したいのですが、 某ASPサービスの環境下での作業のため制約があり直接変更できません。 <body onload="event"> <select name="select"> <option value="10" selected="selected">10件</option> <option value="30">30件</option> <option value="50">50件</option> </select> そこで、JavaScriptで何とかしようと思うのですが、 <select>~ </select>の間(selectタグ含む)は、ASPサービスの制約でIDやclassを入れることもできず、 変更できるのは、body開始タグ部分、headerタグ内、body内(一部)です。 ページを読み込んだ際に、「50件を選択」、「10件からselected外す」状態にしたいです。 いろいろサイトを見てなんとなくできそうな気はするのですが、 スキル的に初心者レベルのため、わかりませんでした。 何卒よろしくお願いします!

  • 【HTML5】selectにrequierd

    HTML5でformのグループ化されたselectを必須にしたいと思い、 下記のようにrequiredを記述しました。 <select name="sample[]" required> <option value="">--</option> <optgroup label="カテゴリA"> <option value="1">選択肢1</option> <option value="2">選択肢2</option> </optgroup> <optgroup label="カテゴリB"> <option value="3">選択肢3</option> </optgroup> </select> そうすると、選択肢1を選択していても「必須項目です」と表示され、フォームが送信できません。 valueの値が1だと選択済として扱われないのでしょうか。 optgroupをなくすと選択肢1を選択した状態で送信できました。 valueの値は1で送信したいのですが、可能でしょうか。

  • セレクトメニューからもう一つのセレクトメニューを選択したか確認

    「ブロック名」のセレクトメニューを選択すると、選択した項目によってもう一つ「部署名」のセレクトメニューが出て選択するようにしました。 送信前に「ブロック名」だけでなく、「部署名」も選択したかそうか確認したのですが、どうしでも出来ません。 いろいろ試しても出来なくて困っています。 ぜひ教えてください。 よろしくお願いいたします。 ---------------------------------------------------------------- menuItem =[[" "], ["(2) 部署を選択 ","あああ","いいい"],      ["(2) 部署を選択 ","ううう","えええ"], ["(2) 部署を選択 ","おおお","かかか"],      ["(2) 部署を選択 ","ききき","くくく"]]; function setMenuItem(n) { len = document.form2.BUSYO.options.length; for (i=0; i<len; i++) { document.form2.BUSYO.options[i] = null; } document.form2.BUSYO.style.visibility = "visible"; for (i=0; i<menuItem[n].length; i++) { document.form2.BUSYO.options[i] = new Option(menuItem[n][i],menuItem[n][i]); } ---------------------------------------------------- <SELECT size="1" name="AREA" onchange="setMenuItem(this.selectedIndex)" style="color : #3d3d3d;"> <OPTION value="0" selected>(1) ブロックを選択 </OPTION> <OPTION value="Aブロック">Aブロック</OPTION> <OPTION value="Bブロック">Bブロック</OPTION> <OPTION value="Cブロック">Cブロック</OPTION> <OPTION value="Dブロック">Dブロック</OPTION> </SELECT> <SELECT size="1" name="BUSYO" style="color : #3d3d3d;visibility : hidden;"> <OPTION selected value="0"></OPTION> </SELECT> ---------------------------------------------------------------- 確認用 if(document.form2.AREA.value=="0"){ alert("ブロックを選択してください"); return false; } return true; }

  • セレクトメニューがIE/FFで違う動作 ソース有

    セレクトメニューの動作が、IE/Firefox(IE以外のブラウザ)で違う(ソース付き) 皆さん、よろしくお願いします。 全く同じ数十のhtmlファイルがあります。 そこで、共通のセレクトメニューを使っています。 ファイル名によって表示項目を変えています。 IEでは、B.HTMLを起動すると、B.HTMLがメニュー項目に出ます。 ただ、FirefoxだとB.HTMLを起動すると、A.HTMLがメニュー項目に出てしまいます。 A.HTMLは両方とも正しく出ます。 どのブラウザでも、IEと同じ動作をさせるには、どのようにすればよろしいでしょうか? ●制限 B.HTMLのOPTIONにselectedを加えるという事は、全ファイル同じ内容である必要があるので、できないのです。 PHPなどでなく、javascriptで実現したいと思っております。 Firefox(IE以外のブラウザ)のjavascriptは有効になっています。 下記を、A.HTML、B.HTMLというファイルに保存すればそのまま動作します。 ================================================ <html> <head> <SCRIPT type="text/javascript"> function selectChange() { var sURL = document.URL.toUpperCase(); if (sURL.indexOf("A.HTML") != -1) Prog.selectedIndex = 0; else if (sURL.indexOf("B.HTML") != -1) Prog.selectedIndex = 1; } </script> </head> <body onLoad="selectChange()"> <select onChange="location.href=this.options[this.selectedIndex].value" name="Prog" size="1"> <OPTION value="A.HTML">A.HTML</OPTION> <OPTION value="B.HTML">B.HTML</OPTION> </select> </body> </html> ================================================

  • プルダウンを選択していないときは、初期値(selected)の値を、選

    プルダウンを選択していないときは、初期値(selected)の値を、選択したときは選択値を、hiddenで渡したい。 ▽プルダウン例 <form> <select> <option value="0" selected>A</option> <option value="4">B</option> <option value="6">C</option> </select> </form> ↑上で選択した値(A or B or C)値を、↓下のvalue=「"hoge"」に渡したいです。 ※選択肢は3つだけではなくて、たくさんあります。 ▽input例 <input name="category_name" value="hoge" type="hidden"> ※formとかselectにid振っても構いません。 ※javascriptでやりたいです。

  • セレクトメニューの値の取得

    質問します。 下記のようなセレクトメニューがあった場合に、表示されている値(AA,BB)をJavaScriptで取得する場合はどのようなコーディングをすればよろしいのでしょうか? <select name="SL_CMB" onChange="alert();"> <option value="1" Selected>AA</option> <option value="2" >BB</option> <option value="3" >CC</option> <option value="4" >DD</option> <option value="5">EE</option> </select>

  • HTMLのフォームをHDMLに変換するソフトってありますか?

    以下のような一般的なフォームで、 単一選択結果を同じ画面に表示したいのですが どうすれば良いでしょうか? 単純なHDMLの例はインターネット上に落ちていますが少しだけ複雑になるとの例がないようです。。 HTML->HDMLに変換してくれるソフトはないでしょうか? ■一番好きな動物と度合いを選択してください <form name="fm" action="test.cgi" method="get"> <select name="a"> <option value="1">りす <option value="2" selected>たぬぼう <option value="3" selected >いぬ </select> <br> <select name="love"> <option value="1" selected>好き <option value="0" >大好き </select> </form>

専門家に質問してみよう