页面效果如下图所示:
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查看,如下图所示: