- ベストアンサー
JavaScriptでセレクトボックスを動的に変更する方法
- JavaScriptを使用して、某ASPサービスの制約下でセレクトボックスの選択値を動的に変更する方法を教えてください。
- 変更できるのはbody開始タグ部分、headerタグ内、body内の一部であり、<select>~</select>の間にはIDやclassを入れることもできません。
- ページ読み込み時に50件を選択し、10件のselectedを外す状態にしたいです。初心者のため、具体的な方法がわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
jquery を使えるのであればもっとみじかくかけます。 一行です。 http://webhako.net/jquery/select-set-value/
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
「selectという名前のセレクトボックスからvalueが50のoptionを選ばせる」 というなら以下でいけます。 <select name="dummy"> <option value="10" selected="selected">10件</option> <option value="30">30件</option> <option value="50">50件</option> </select> <select name="select"> <option value="10" selected="selected">10件</option> <option value="30">30件</option> <option value="50">50件</option> </select> <select name="dummy"> <option value="10" selected="selected">10件</option> <option value="30">30件</option> <option value="50">50件</option> </select> <script> var tags=document.getElementsByTagName("select"); var tag=null; for(var i=0;i<tags.length;i++){ if(tags[i].name=="select"){ tag=tags[i]; break; } } var opts=tag.options; for(var i=0;i<opts.length;i++){ if(opts[i].value=="50"){ tag.selectedIndex=i; break; } } </script>
補足
申し訳ありません。初心者すぎるのかわかりませんでした。。。 jquery入れるのでしょうか? イベントハンドラはどのうように入れたらいいのでしょうか。。。
お礼
あらためて通常のサーバ環境で上記の記述を試したところ、 反映されました! しかし、ASP環境下では反映されないようです。 制限がかけられているのかもしれませんね。。。 諦めて他のやり方を考えます。 ありがとうございました;;
補足
こんな感じで入れてみましたが動きませんでした。。。 onLoad="selected(50)"というのがダメなんでしょうか? ~~~ <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script> </head> <body onLoad="selected(50)"> <script> function selected(n){ $("select[name='select']").val(n); } </script> <select name="select"> <option value="10" selected="selected">10件</option> <option value="30">30件</option> <option value="50">50件</option> </select>