JS Select 省市三级联动

ゝ一纸荒年。 2023-01-13 05:53 215阅读 0赞
  1. 省:
  2. <select style="width: 100px;" id="pre" onchange="chg(this);">
  3. <option value="-1">请选择</option>
  4. </select>
  5. 市:
  6. <select style="width: 100px;" id="city" onchange="chg2(this)" ;></select>
  7. 区:
  8. <select style="width: 100px;" id="area"></select>
  9. //声明省
  10. var pres = ["北京", "上海", "山东"]; //直接声明Array
  11. //声明市
  12. var cities = [
  13. ["东城", "昌平", "海淀"],
  14. ["浦东", "高区"],
  15. ["济南", "青岛"]
  16. ];
  17. var areas = [
  18. [
  19. ["东城1", "东城2", "东城3"],
  20. ["昌平1", "昌平2", "昌平3"],
  21. ["海淀1", "海淀2", "海淀3"]
  22. ],
  23. [
  24. ["浦东1", "浦东2", "浦东3"],
  25. ["高区1", "高区2", "高区3"]
  26. ],
  27. [
  28. ["济南1", "济南2"],
  29. ["青岛1", "青岛2"]
  30. ]
  31. ]
  32. //设置一个省的公共下标
  33. var pIndex = -1;
  34. var preEle = document.getElementById("pre");
  35. var cityEle = document.getElementById("city");
  36. var areaEle = document.getElementById("area");
  37. //先设置省的值
  38. for (var i = 0; i < pres.length; i++) {
  39. //声明option.<option value="pres[i]">Pres[i]</option>
  40. var op = new Option(pres[i], i);
  41. //添加
  42. preEle.options.add(op);
  43. }
  44. function chg(obj) {
  45. if (obj.value == -1) {
  46. cityEle.options.length = 0;
  47. areaEle.options.length = 0;
  48. }
  49. //获取值
  50. var val = obj.value;
  51. pIndex = obj.value;
  52. //获取ctiry
  53. var cs = cities[val];
  54. //获取默认区
  55. var as = areas[val][0];
  56. //先清空市
  57. cityEle.options.length = 0;
  58. areaEle.options.length = 0;
  59. for (var i = 0; i < cs.length; i++) {
  60. var op = new Option(cs[i], i);
  61. cityEle.options.add(op);
  62. }
  63. for (var i = 0; i < as.length; i++) {
  64. var op = new Option(as[i], i);
  65. areaEle.options.add(op);
  66. }
  67. }
  68. function chg2(obj) {
  69. var val = obj.selectedIndex;
  70. var as = areas[pIndex][val];
  71. areaEle.options.length = 0;
  72. for (var i = 0; i < as.length; i++) {
  73. var op = new Option(as[i], i);
  74. areaEle.options.add(op);
  75. }
  76. }

完整项目:http://github.crmeb.net/u/defu

发表评论

表情:
评论列表 (有 0 条评论,215人围观)

还没有评论,来说两句吧...

相关阅读