注释:由于数据库要求存城市名所以option的value给的是城市名
<!-- add by zzq 20190213 for 修改借货地址数据来源 start -->
<select name="province" id="province" onChange="checkCity()" value="<c:out value='${province}'/>">
<option>--SELECT--</option>
<c:forEach items="${provinceList}" var="province">
<option value="<c:out value='${province.chinese_name}'/>" id="<c:out value='${province.province_code}'/>"><c:out value='${province.chinese_name}'/></option>
</c:forEach>
</select>
<select name="city" id="city" value="<c:out value='${city}'/>">
<option>--SELECT--</option>
<c:if test="${not empty loanChangeMasterTo.provinceCity}">
<option value="<c:out value='${city}'/>"><c:out value='${city}'/></option>
</c:if>
</select>
<!-- add by zzq 20190213 for 修改借货地址数据来源 end -->
<!-- add by zzq 20190213 for 修改借货地址数据来源 start -->
<script>
var flag="<c:out value='${flag}'/>";
if(flag=="1"){
//有值默认选中,省份
var provinceCity="<c:out value='${province}'/>";
if(provinceCity!=""){
var provinces= document.getElementById("province");
for(var i=1;i<provinces.options.length;i++){
if(provinces.options[i].value.indexOf(provinceCity)!=-1){
provinces.selectedIndex=i;
break;
}
}
}
//有值默认选中,市
var city= "<c:out value='${city}'/>";
if(city!=""){
var citys= document.getElementById("city");
for(var j=1;j<citys.options.length;j++){
if(citys.options[j].value.indexOf(city)!=-1){
citys.selectedIndex=j;
break;
}
}
}
//根据选中的省份,展示市级城市
function checkCity(){
var obj = document.getElementById("province");
var index = obj.selectedIndex; // 选中索引
var province_code = obj.options[index].id; // 选中id
var citys= document.getElementById("city");
citys.options.length=0;
DWREngine.setAsync(true);
OrderAjax.getProvinceCityInfo(province_code,
{
callback:function(map)
{
if(map.cityList!=""){
for(key in map.cityList){
citys.options.add(new Option(map.cityList[key].codeName,map.cityList[key].cityCode));
}
}else{
citys.options.add(new Option("-SELECT-",""));
citys.options.remove(1);
}
}
}
);
}}
</script>
<!-- add by zzq 20190213 for 修改借货地址数据来源 end -->
ajax如下:
public Map getProvinceCityInfo(String province){
OrderDAO orderDAO = new OrderDAO();
Map resultMap = new HashMap();
try {
List list=orderDAO.getCityList(province);
JSONArray array = new JSONArray();
for(int i=0;i<list.size();i++){
SpmsMiscCityTO sct=(SpmsMiscCityTO)list.get(i);
JSONObject object = new JSONObject();
object.put("cityCode", sct.getCity_code().toString());
object.put("codeName", sct.getCityname_ch().toString());
array.add(object);
}
resultMap.put("cityList", array);
} catch (DAOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return resultMap;
}