画面遷移時のreadyイベント内でMySQLから読み込んだ値をselectのoptionに追加しています.
追加後のHTMLは以下のようになります.
空白を選択するために,<option value = "0"></value>のみ最初から記述しています.
HTML
1<select name="sRegister" id="content" style = "width:100px;height:22px"> 2 <option value = "0"></value> 3 <option value = "1">Item 1</value> 4 <option value = "2">Item 2</value> 5 <option value = "3">Item 3</value> 6 <option value = "4">Item 4</value> 7</select>
その後,前の画面から渡された値によってselectの値を変えたいと考えています.
例えば2を受けとった場合は Item2 を表示したいです.
そのため以下のコードを作成致しました.
vが値です.
Javascript
1 function setPulldown(v){ 2 3 var pulldown_option = document.getElementById('content').getElementsByTagName('option'); 4 5 for(i=0; i<pulldown_option.length;i++){ 6 if(pulldown_option[i].value == v){ 7 pulldown_option[i].selected = true; 8 break; 9 } 10 } 11 }
上記をready内に記述して実行したところpulldown_option.lengthが1にしかならずItem2が表示されません.
試しにreadyではなくload内でsetPulldown(v)を実行しましたが,同じ結果になってしまいました.
多分ですが,selectの要素が全て設定されていないのにsetPulldown(v)を実行したので1しか返ってきていないのだと推測されます.
どのようにすればselectがの要素が全て設定されてからsetPulldown(v)を実行できますでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/26 05:36
退会済みユーザー
2017/03/26 05:39