基于jQuery+JSON的省市联动效果

前端之家收集整理的这篇文章主要介绍了基于jQuery+JSON的省市联动效果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

省市区联动下拉效果在WEB中应用非常广泛,尤其在一些会员信息系统、电商网站最为常见。开发者一般使用Ajax实现无刷新下拉联动。本文将讲述,利用jQuery插件,通过读取JSON数据,实现无刷新动态下拉省市二(三)级联动效果

  1. <label>
  2. <span>住址(省市区):</span>
  3. @Html.DropDownList("Province",ViewData["Province"] as SelectList,"请选择",new { @class = "m-wrap small" })
  4. @Html.DropDownList("City",ViewData["City"] as SelectList,new { @class = "m-wrap small" })
  5. @Html.DropDownList("Area",ViewData["Area"] as SelectList,new { @class = "m-wrap small" })
  6. </label>

  1. <label>
  2. <span>住址(省市区):</span>
  3. <select class="m-wrap small" id="Province" name="Province"><option value="">请选择</option>
  4. <option value="110000">北京</option>
  5. <option value="120000">天津</option>
  6. <option value="130000">河北</option>
  7. <option value="140000">山西</option>
  8. <option value="150000">内蒙古</option>
  9. <option value="160000">辽宁</option>
  10. <option value="170000">吉林</option>
  11. <option value="180000">黑龙江</option>
  12. <option value="190000">上海</option>
  13. <option value="200000">江苏</option>
  14. <option value="210000">浙江</option>
  15. <option value="220000">安徽</option>
  16. <option value="230000">福建</option>
  17. <option value="240000">江西</option>
  18. <option value="250000">山东</option>
  19. <option value="260000">河南</option>
  20. <option value="270000">湖北</option>
  21. <option value="280000">湖南</option>
  22. <option value="290000">广东</option>
  23. <option value="300000">广西</option>
  24. <option value="310000">海南</option>
  25. <option value="320000">重庆</option>
  26. <option value="330000">四川</option>
  27. <option value="340000">贵州</option>
  28. <option value="350000">云南</option>
  29. <option value="360000">西藏</option>
  30. <option value="370000">陕西</option>
  31. <option value="380000">甘肃</option>
  32. <option value="390000">青海</option>
  33. <option value="400000">宁夏</option>
  34. <option value="410000">新疆</option>
  35. <option value="420000">香港</option>
  36. <option value="430000">澳门</option>
  37. <option value="440000">台湾</option>
  38. </select>
  39. <select class="m-wrap small" id="City" name="City"><option value="">请选择</option>
  40. </select>
  41. <select class="m-wrap small" id="Area" name="Area"><option value="">请选择</option>
  42. </select>
  43. </label>

  1. <script type="text/javascript">
  2. $(document).ready(function () {
  3. var Province = $("#Province").val();
  4. var City = $("#City").val()
  5. if (Province != "" && City=="") {
  6. setCity();
  7. }
  8. if (City != "" && $('#Area').val() == "") {
  9. setArea();
  10. }
  11. $("#Province").change(function () {
  12. setCity();
  13. });
  14.  
  15. $("#City").change(function () {
  16. setArea();
  17. });
  18. function setCity() {
  19.  
  20. $('#City').html('').append($("<option value=''>请选择</option>"));
  21. $('#Area').html('').append($("<option value=''>请选择</option>"));
  22. if($("#Province").val()!=""){
  23. $.getJSON('@Url.Action("GetCitys")',{ code: $("#Province").val() },function (data) {
  24. $.each(data,function (i,item) {
  25. $('#City').append($("<option></option>").val(item.code).html(item.name));
  26. });
  27. setArea();
  28. });
  29. }
  30. }
  31. function setArea() {
  32. $('#Area').html('').append($("<option value=''>请选择</option>"));
  33. if($("#City").val()!=""){
  34. $.getJSON('@Url.Action("GetAreas")',{ code: $("#City").val() },function (data) {
  35. $.each(data,item) {
  36. $('#Area').append($("<option></option>").val(item.code).html(item.name));
  37. });
  38. });
  39. }
  40. }
  41. });
  42. </script>

  1. [AuthorizeIgnore]
  2. public JsonResult GetCitys(string code)
  3. {
  4.  
  5. var city = AreaService.GetCities(code);
  6. return Json(city.ToList<City>(),JsonRequestBehavior.AllowGet);
  7.  
  8. }
  9.  
  10. [AuthorizeIgnore]
  11. public JsonResult GetAreas(string code)
  12. {
  13.  
  14. var area = AreaService.GetAreas(code);
  15. JsonResult json = Json(area.ToList<Area>(),JsonRequestBehavior.AllowGet);
  16. return json;
  17.  
  18. }

  1. public void InitViewData(ClientRequest request)
  2. {
  3. List<SelectListItem> list = new List<SelectListItem> {
  4. new SelectListItem { Text = "全部",Value = "-1",Selected = (request.IsActive==-1 ? true : false)},new SelectListItem { Text = "是",Value = "1",Selected = (request.IsActive==1 ? true : false)},new SelectListItem { Text = "否",Value = "0",Selected = (request.IsActive==0 ? true : false) } };
  5. ViewData["IsActive"] = list;
  6. var provance = this.AreaService.GetProvinces();
  7. ViewData["Province"] = from a in provance
  8. select new SelectListItem
  9. {
  10. Text = a.name,Value = a.code,Selected = request.Province == a.code ? true: false
  11. };
  12. List<SelectListItem> City = new List<SelectListItem>();
  13. ViewData["City"] = City;
  14. if (request.City != null)
  15. {
  16. var city = this.AreaService.GetCities(request.Province);
  17. ViewData["City"] = from a in city
  18. select new SelectListItem
  19. {
  20. Text = a.name,Selected = request.City == a.code ? true : false
  21. };
  22. }
  23. List<SelectListItem> Area = new List<SelectListItem>();
  24. ViewData["Area"] = Area;
  25. if (request.Area != null)
  26. {
  27. var area = this.AreaService.GetAreas(request.City);
  28. ViewData["Area"] = from a in area
  29. select new SelectListItem
  30. {
  31. Text = a.name,Selected = request.Area == a.code ? true : false
  32. };
  33. }
  34. }

猜你在找的Json相关文章