- ベストアンサー
JavaScriptを使用してセレクトボックスの初期値を設定したい
- JavaScriptを使用して、ページを開くとセレクトボックスの値が初期値になるようにする方法を教えてください。
- 詳細を説明すると、セレクトボックスには担当者一覧があります。ログインしている担当者名が選択された状態になるようにしたいです。
- ソースコードを書きましたがうまく動作しません。どうすれば初期状態から担当者が選ばれた状態になるでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
3点修正が必要 (1)load後の処理になるのでwindow.onloadで処理する (2)element.options[i]ではなくelement.options[i].value (3) 'tantou'ではなくtantou ざっと、こんな感じ <script> window.onload=function(){ var tantou = "山本 太郎"; var element = document.getElementById("sagyounm"); for (var i=0; i<element.options.length;i++) { if(element.options[i].value === tantou){ element.options[i].selected = true; break; }; }; } </script> <select name="sagyoutantou" id="sagyounm" required> <option value=""/>---作業担当者選択---</option> <option value="山本 太郎"/>山本 太郎</option> <option value="山下 清"/>山下 清</option> <option value="岡本 次郎"/>岡本 次郎</option>
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
よくわかりませんが… >if(element.options[i] === 'tantou'){ ~~ だと'tanntou'という文字列と比較してしまっているので、多分、一致することはないでしょう。 変数tanntouの内容と比較するのでしょうから、 if(element.options[i] === tantou){ ~~ とすればうまくいくかも… あと、質問文からはわかりませんが、DOM構築後にスクリプトを実行するようになっていますよね? ところで、 >var tantou = "<%=Rs("作業担当者")%>" って、サーバーサイドで処理しているのでしょうから、わざわざクライアントサイドで選択する処理をしなくても、出力するときに担当者をselectedにしておくとか、あるいはセレクトタグなどでなく担当者は固定にしてしまうとかでもよさそうに思いますが…
お礼
回答ありがとうございました。 まだまだ初心者なので、「''」をつけるのかどうかわかっておりませんでした。 サーバーサイドとクライアントの処理がまだよくわかってませんので、中々難しいです。
お礼
回答ありがとうございます。 ご指摘どおり修正しましたところ、 問題なく動作いたしました。 ほんとうにありがとうございました。