struts2でダブル選択ボックスを作成しています。最初の選択ボックスで国を選択すると、2 番目の選択ボックスで国に応じて都市が取得されます。最初の選択ボックスのonchange event
JS 関数では、アクション クラス メソッドで都市リストを作成しているという事実に基づいて、選択した値を渡し、ajax send メソッドを使用してアクションにデータを送信しています。では、2番目の選択ボックスに設定できるように、Javascriptでリストにアクセスするにはどうすればよいですか?
これが私のコードです:
<script>
function loadCity(str) {
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "loadcity.action?country=" + str, true);
xmlhttp.send();
var dat = document.getElementById("cityList").value.toString();
window.alert(dat);
}
</script>
<s:select name="country" id="country" list="countryList" label="country" onchange="loadCity(this.value)">
</s:select>
<s:select name="city" label="City" id="cityList" list="cityList">
</s:select>
これが私のアクションクラスメソッドです:
public String loadcity() {
cityList = new ArrayList();
cityList.add("New Delhi");
cityList.add("Mumbai");
cityList.add("Moradabad");
setCityList(cityList);
return NONE;
}
ここcityList
には正しい値がありますが、JS 関数で使用している場合、 として表示されnull
ます。