页面效果如下图所示:
js代码如下图所示:
$(function(){ //初始化省份、城市下拉列表 var provinceId = $('#provinceId'); provinceId.combobox({ url:'demoAction!getProvinceJson.action', valueField:'provinceId', textField:'provinceName', onChange:function(){ var provinceId = $('#provinceId').combobox('getValue'); $('#cityId').combobox({ url:'demoAction!getCityJsonByProvinceId.action?provinceId='+provinceId, valueField:'cityId', textField:'cityName' }); } }); });
action处理如下图所示:
// ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
// ×××××××××××××××××××××××××××二级联动×××××××××××××××××××××××
// ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
//进入二级联动页面
public String menuButton2(){
return "combobx2";
}
//得到省级数据
public void getProvinceJson(){
JSONArray jsonArray = new JSONArray();
JSONObject jsonObj = new JSONObject();
jsonObj.put("provinceId", "bj");
jsonObj.put("provinceName", "北京");
jsonObj.put("selected", true);
jsonArray.add(jsonObj);
JSONObject jsonObj2 = new JSONObject();
jsonObj2.put("provinceId", "hb");
jsonObj2.put("provinceName", "河北");
jsonArray.add(jsonObj2);
writeJson(jsonArray);
}
//-----------------------得到城市列表---------------------------
//浏览器传递过来的信息
private String provinceId;
public String getProvinceId() {
return provinceId;
}
public void setProvinceId(String provinceId) {
this.provinceId = provinceId;
}
public void getCityJsonByProvinceId(){
JSONArray jsonArray = new JSONArray();
JSONObject jsonObj = new JSONObject();
if("bj".equals(provinceId)){
jsonObj.put("cityId", "ft");
jsonObj.put("cityName", "丰台区");
jsonObj.put("selected", true);
JSONObject jsonObj2 = new JSONObject();
jsonArray.add(jsonObj);
jsonObj2.put("cityId", "hd");
jsonObj2.put("cityName", "海淀区");
jsonArray.add(jsonObj2);
}
if("hb".equals(provinceId)){
jsonObj.put("cityId", "lf");
jsonObj.put("cityName", "廊坊");
jsonObj.put("selected", true);
jsonArray.add(jsonObj);
JSONObject jsonObj2 = new JSONObject();
jsonObj2.put("cityId", "cz");
jsonObj2.put("cityName", "石家庄");
jsonArray.add(jsonObj2);
}
writeJson(jsonArray);
}
注意:如果默认使数据选中,需要设置 selected=true
小技巧:官网提供的例子里,直接通过firebug查看,如下图所示: