- ベストアンサー
セレクトボックスの選択項目を変える
セレクトボックスの選択項目を変えるには どうすればいいですか? <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のみの対応でいいので、お願いします
- みんなの回答 (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」が選択されます。 ※細かいエラーチェックはしていないので、必要なら適宜加えて下さい。 ※インデントに全角空白を使っているので、コピーする場合はタブなどに置換して下さい。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
document.forms[0].elements[0].options[2].selected=true; でできると思います。 onloadで実行するとか、ボタンで実行するとか、とにかく画面が表示された後(onloadされたあと)実行してください。
お礼
ありがとうございます
お礼
エラーチェックまでしていただいて とてもありがとうございます