基于layui的三级联动模块

1.html的页面代码如下:

 
  1. <html>

  2. <head>

  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  4. <meta name="renderer" content="webkit">

  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

  7. <meta name="apple-mobile-web-app-status-bar-style" content="black">

  8. <meta name="apple-mobile-web-app-capable" content="yes">

  9. <meta name="format-detection" content="telephone=no">

  10. <link rel="stylesheet" href="../../../layui-v2.1.5/css/layui.css" />

  11. </head>

  12. <body>

  13. <div class="layui-form">

  14. <div class="layui-input-inline">

  15. <select name="province" lay-filter="province" class="province">

  16. <option value="">请选择省</option>

  17. </select>

  18. </div>

  19. <div class="layui-input-inline">

  20. <select name="city" lay-filter="city" disabled>

  21. <option value="">请选择市</option>

  22. </select>

  23. </div>

  24. <div class="layui-input-inline">

  25. <select name="area" lay-filter="area" disabled>

  26. <option value="">请选择县/区</option>

  27. </select>

  28. </div>

  29. </div>

  30. </body>

  31. <script type="text/javascript" src="../../../layui-v2.1.5/layui.js"></script>

  32. <script type="text/javascript" src="address.js"></script>

  33. <script type="text/javascript">

  34. layui.config({

  35. base : "../../../js/" //address.js的路径

  36. }).use([ 'layer', 'jquery', "address" ], function() {

  37. var layer = layui.layer, $ = layui.jquery, address = layui.address();

  38.  
  39. });

  40. </script>

  41. <html>

2.address.js的代码入下:

 
  1. ps:需要注意的有: $.get("address.json", function (data) {} 的地址为json地址,地址不对会报异常。

  2. layui.define(["form","jquery"],function(exports){

  3. var form = layui.form,

  4. $ = layui.jquery,

  5. Address = function(){};

  6.  
  7. Address.prototype.provinces = function() {

  8. //加载省数据

  9. var proHtml = '',that = this;

  10. $.get("address.json", function (data) {

  11. for (var i = 0; i < data.length; i++) {

  12. proHtml += '<option value="' + data[i].code + '">' + data[i].name + '</option>';

  13. }

  14. //初始化省数据

  15. $("select[name=province]").append(proHtml);

  16. form.render();

  17. form.on('select(province)', function (proData) {

  18. $("select[name=area]").html('<option value="">请选择县/区</option>');

  19. var value = proData.value;

  20. if (value > 0) {

  21. that.citys(data[$(this).index() - 1].childs);

  22. } else {

  23. $("select[name=city]").attr("disabled", "disabled");

  24. }

  25. });

  26. })

  27. }

  28.  
  29. //加载市数据

  30. Address.prototype.citys = function(citys) {

  31. var cityHtml = '<option value="">请选择市</option>',that = this;

  32. for (var i = 0; i < citys.length; i++) {

  33. cityHtml += '<option value="' + citys[i].code + '">' + citys[i].name + '</option>';

  34. }

  35. $("select[name=city]").html(cityHtml).removeAttr("disabled");

  36. form.render();

  37. form.on('select(city)', function (cityData) {

  38. var value = cityData.value;

  39. if (value > 0) {

  40. that.areas(citys[$(this).index() - 1].childs);

  41. } else {

  42. $("select[name=area]").attr("disabled", "disabled");

  43. }

  44. });

  45. }

  46.  
  47. //加载县/区数据

  48. Address.prototype.areas = function(areas) {

  49. var areaHtml = '<option value="">请选择县/区</option>';

  50. for (var i = 0; i < areas.length; i++) {

  51. areaHtml += '<option value="' + areas[i].code + '">' + areas[i].name + '</option>';

  52. }

  53. $("select[name=area]").html(areaHtml).removeAttr("disabled");

  54. form.render();

  55. }

  56.  
  57. var address = new Address();

  58. exports("address",function(){

  59. address.provinces();

  60. });

  61. });

  62. 3.address.json的下载地址如下:

    一、下载地址
    二、下载地址

猜你喜欢

转载自blog.csdn.net/weixin_34824012/article/details/81178917