首頁 >web前端 >js教程 >JQuery打造省市下拉框連動效果_jquery

JQuery打造省市下拉框連動效果_jquery

WBOY
WBOY原創
2016-05-16 16:47:501293瀏覽

做連動效果,若是用純JavaScript來做,往往需要輔助頁面儲存需要重新整理的結果集,然後渲染到原始頁面。考慮將需要動態刷新的內容自動拼接到前一個下拉框之後,當前一個下拉框onchange後,同級的後面的下拉框全部清除,然後重新拼接刷新的內容。用JQuery實作比較容易,程式碼以省市連動效果為例實作。

JSP頁面程式碼如下:

複製程式碼 程式碼如下:














生源地:





JavaScript程式碼如下:




複製程式碼


程式碼如下:


function refreshCity(){ if($('#provinceCode').find('option:selected').val() == ""){
$('#provinceCode').parent().nextAll('lable'). remove();
return;
}
//省名
var provinceName = $('#provinceCode').find('option:selected').text();
provinceName = provinceName.substring(0,provinceName.length-4);
// 發出Json請求,查詢子下拉框選項資料
$.getJSON("baseInfo_getCitiesByProvinceId", {
proviceCode : $('#provinceCode').val()
}, function(data) {
// 如果有子選項,則建立子下拉框
if(data != null){
// 刪除下拉框父級後的所有同級
$('#provinceCode').parent().nextAll('lable').remove();
var childId = "city";
// 判斷是否存在下一級下拉框不存在就建立
if($('#' childId).length == 0){ // 建立一個
  • 並建立一個").appendTo($('#base')); }else{ //清空子下拉框內容$('#' childId).empty();
  • }
    // 遍歷json串,填充子下拉框
    $.each(data.city, function(i, item) {
    $('#' childId).append(
    " ");
    });
    }
    });
    }
    }


    根據省份獲取市的代碼如下:




    複製代碼


    代碼如下:


    public void getCitiesByProvinceCode(String proviceCode, HttpServletResponse response) throws JsonParseException, JsonMappingException, JSONException, IOException( 🎜>List cityList = this .provinceAndCityInfoService。 🎜>if (cityList.size() > 0) {
    cityJson = "{"city":[";
    // 拼接查詢到的子項
    for (int i = 0; i CityInfo city = cityList.get(i);
    String temp = "{"code":"" city.getCode()
    "","nameAndCode" :"" city.getName() "(" city.getCode() ")"
    ""}"; // 如果是集合中最後一項,則拼接結束符,否則用","分開if (i == cityList.size() - 1) { cityJson = cityJson temp "]}"; } else { cityJson = cityJson temp ","; } } } // 設定輸出的字元集和類型並輸出json字串response.setCharacterEncoding("UTF-8"); response.setContentType("json" ); response.getWriter().print(cityJson); }
    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn