• ベストアンサー

セレクトボックスの選択項目を変える

セレクトボックスの選択項目を変えるには どうすればいいですか? <FORM action=./ method=post> <SELECT name=server> <OPTION value=2 selected>2</OPTION> <OPTION value=3>3</OPTION> <OPTION value=4>4</OPTION> </SELECT> </FORM> こういうフォーム(FORMやOPTIONにnameがない)で [4]を選択したいです このフォームを書き換えないで(スクリプトでの書き換えなら○) どうにか変えることはできないでしょうか? IEのみの対応でいいので、お願いします

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

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

考え方 ・FORM に name がない時は document.forms を使って1つ1つのフォームを調べ、目的のセレクトボックスを探します。 ・セレクトボックスの有無は、「フォーム.server」がnull か否かで判断できます。 ・セレクトボックスが見つかったら options の各要素を調べ、選択したい値を持つ要素の selected を true にします。 以下サンプル(動作確認済み。IE以外でも問題なく動作します。) <script type="text/javascript"><!-- function select_server(n) {   for (var i = 0; i < document.forms.length; i++) {     var f = document.forms[i];     if (f.server) {       for (var j = 0; j < f.server.options.length; j++) {         if (f.server.options[j].value == n) {           f.server.options[j].selected = true;           return;         }       }     }   } } //--></script> ※必要なタイミングで select_server(4); を実行すれば「4」が選択されます。 ※細かいエラーチェックはしていないので、必要なら適宜加えて下さい。 ※インデントに全角空白を使っているので、コピーする場合はタブなどに置換して下さい。

noname#12205
質問者

お礼

エラーチェックまでしていただいて とてもありがとうございます

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

document.forms[0].elements[0].options[2].selected=true; でできると思います。 onloadで実行するとか、ボタンで実行するとか、とにかく画面が表示された後(onloadされたあと)実行してください。

noname#12205
質問者

お礼

ありがとうございます

関連するQ&A

専門家に質問してみよう