首页 > 语言 > JavaScript > 正文

jquery实现的省市区三级联动

2024-05-06 16:18:08
字体:
来源:转载
供稿:网友

在做项目的时候,我们经常需要用到地址之类的省市区三级联动的,今天就给大家分享一个非常简洁的省市区三级联动的代码,基于jQuery,附上GIT地址,有需要的小伙伴可以直接拿走

省市级联动,附使用示例和数据表数据

有部分数据精确到乡镇一级!!!

Git 地址:http://git.oschina.net/upliu/province-city-district

演示代码:

 

 
  1. <!DOCTYPE html> 
  2. <html> 
  3. <head lang="en"
  4. <meta charset="UTF-8"
  5. <title>省市区三级联动</title> 
  6. </head> 
  7. <body> 
  8. <form method="post" action="post.php"
  9. <div id="area"></div> 
  10. <input type="submit" style="margin-top: 10px;"
  11. </form> 
  12. <script src="jquery-2.1.3.min.js"></script> 
  13. <script src="area.js"></script> 
  14. <script> 
  15. $(function(){ 
  16.  
  17. add_select(0); 
  18.  
  19. $('body').on('change''#area select'function() { 
  20. var $me = $(this); 
  21. var $next = $me.next(); 
  22. /** 
  23. * 如果下一级已经是当前所选地区的子地区,则不进行处理 
  24. */ 
  25. if ($me.val() == $next.data('pid')) { 
  26. return
  27. $me.nextAll().remove(); 
  28. add_select($me.val()); 
  29. }); 
  30.  
  31. function add_select(pid) { 
  32. var area_names = area['name'+pid]; 
  33. if (!area_names) { 
  34. return false
  35. var area_codes = area['code'+pid]; 
  36. var $select = $('<select>'); 
  37. $select.attr('name''area[]'); 
  38. $select.data('pid', pid); 
  39. if (area_codes[0] != -1) { 
  40. area_names.unshift('请选择'); 
  41. area_codes.unshift(-1); 
  42. for (var idx in area_codes) { 
  43. var $option = $('<option>'); 
  44. $option.attr('value', area_codes[idx]); 
  45. $option.text(area_names[idx]); 
  46. $select.append($option); 
  47. $('#area').append($select); 
  48. }; 
  49. }); 
  50. </script> 
  51. </body> 
  52. </html> 

以上所述就是本文给大家分享的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选