- ベストアンサー
プルダウンメニューのvalue値取得について
お世話になります。 プルダウンメニューのvalue値を取得するのに以下のjavascriptとhtmlを作成しました。 3つのカテゴリプルダウンメニューのそれぞれのvalue値をflg_fileへ格納して、その値に対応したHTMLへジャンプという物なのですが、実際に動作させると、main_select02や03でvalue値を4、5と指定しているにもかかわらず、実際に動作させるとジャンプする先はlist_NO"1".htmlとなってしまっています。 これはvalue値がちゃんと取得できていないのか、それともプルダウンメニューは値を設定しても、上から自動的に1、2・・・となるのが仕様なのか、元々の作りがおかしいのか頭を悩ませています。 何がおかしいのか、ご教授頂けますようお願いします。 ■javascriptソース function flg_set(n) { switch(n){ case 1: flg_file = document.selectForm.main_select01.selectedIndex; break; case 2: flg_file = document.selectForm.main_select02.selectedIndex; break; case 3: flg_file = document.selectForm.main_select03.selectedIndex; break; } } function select_list() { parent.select.location.href = "list_NO"+[flg_file]+".html"; } ■HTMLソース <FORM NAME="selectForm"> <td width="10"> </td> <td width="120"><select name="main_select01" onChange="flg_set(1)" onFocus="this.blur()" style="font-size:12px; width:120px;"> <option value="0">▲カテゴリ(1)</option> <option value="1">┗ ページ(1)</option> <option value="2">┗ ページ(2)</option> <option value="3">┗ ページ(3)</option> </select></td> <td width="10"> </td> <td width="120"><select name="main_select02" onChange="flg_set(2)" onFocus="this.blur()" style="font-size:12px;width:120px;"> <option value="0">▲カテゴリ(2)</option> <option value="4">┗ ページ(4)</option> <option value="5">┗ ページ(5)</option> </select> </td> <td width="10"> </td> <td width="120"><select name="main_select03" onChange="flg_set(3)" onFocus="this.blur()" style="font-size:12px;width:120px;"> <option value="0">▲カテゴリ(3)</option> <option value="6" selected>┗ ページ(6)</option> </select> </td> <td width="10"> </td> <td width="100%"><input type="button" value="ページジャンプ" onClick="select_list();"> </td> </form>
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 >これはvalue値がちゃんと取得できていないのか、それともプルダウン >ニューは値を設定しても、上から自動的に1、2・・・となるのが >仕様なのか、元々の作りがおかしいのか頭を悩ませています。 私自身初心者なのでプログラムの作りがおかしいかどうかは判断しかねますが、(ごめんなさい(_ _) value値を取得したいのならば、 flg_file = document.selectForm.main_select01.value; でいいのではないでしょうか? valueとselectedIndexは異なるプロパティです。 IndexNoは0から始まりますのでmain_select01では、たまたま、 main_select01のIndexNoとvalue値が一致していたということですね。
その他の回答 (2)
- MAN_MA_RUI
- ベストアンサー率41% (426/1024)
もうちょっというとこういう形になります。 フォームオブジェクト名はformタグに指定されたnameの値、セレクトオブジェクト名はselectタグに指定されたnameの値。 document.フォームオブジェクト名.セレクトオブジェクト名.options[document.フォームオブジェクト名.セレクトオブジェクト名.selectedIndex].value
お礼
丁寧に二度も解説して頂いて真に有難う御座います! やはりselectIndex部分だったのですね。 組み合わせると色々と出来そうで、とても参考になりました! 遅い時間に有難う御座いました!!
- MAN_MA_RUI
- ベストアンサー率41% (426/1024)
document.selectForm.main_select01.options[document.selectForm.main_select01.selectedIndex].valueになるはずです。
お礼
アドバイス頂いたように直しましたら上手く行きました! なるほど・・・valueとselectedIndexは異なる物だったのですね!! なんでだなんでだーと悩んでいましたが、根本的なところを理解していなかったようでお恥ずかしい限りです。 遅い時間に有難う御座いました!!