• jquery 地址四级联级显示 不默认选择


    代码效果 

    1. <body class="bgca">
    2. <img src="./files/joinTooBg.png" style="width: 100%;object-fit: cover;" alt="">
    3. <!--填写申请资料-->
    4. <section>
    5. <div class="zi-liao">
    6. <h3 class="zong-h3">填写申请资料</h3>
    7. <div class="zs-bt"></div>
    8. <div class="zi-form">
    9. <form action="" method="post" enctype="multipart/form-data" onsubmit="return false;">
    10. <div class="zi-bor">
    11. <div class="zi-l border-b">
    12. <div class="zi-name">姓名:</div>
    13. <div class="zi-ingput"><input type="text" name="name" id="name" required=""
    14. placeholder="请输入您的姓名"></div>
    15. </div>
    16. <div class="zi-l border-b">
    17. <div class="zi-name">电话:</div>
    18. <div class="zi-ingput"><input type="text" name="mobile" id="mobile" required=""
    19. placeholder="请输入您的电话"></div>
    20. </div>
    21. <div class="zi-l border-b" style="display: flex;align-items: center;">
    22. <div class="zi-name" style="width: 80px;">代理区域:</div>
    23. <div class="join_region">
    24. 请选择要代理的区域
    25. <img class="reight_icon" src="./files/reight_icon.png" alt="">
    26. </div>
    27. </div>
    28. </div>
    29. <div class="zi-sub">
    30. <input type="hidden" name="action" value="city">
    31. <input type="submit" id="submit" value="提交">
    32. </div>
    33. </form>
    34. </div>
    35. </div>
    36. </section>
    37. <div class="popup_box_msk"></div>
    38. <div class="popup_box">
    39. <div class="ads_popup">
    40. <div class="ads_name_box">
    41. <div class="popupShow_close">
    42. <div></div>
    43. <!-- <u-icon name="close" size="20" @click="adsObj.popupShow=false"></u-icon> -->
    44. </div>
    45. <div class="ads_item_name clickProvince">
    46. <div class="province_name"></div>
    47. <img class="ads_item_right_icon" src="./files/reight_icon.png" />
    48. </div>
    49. <div class="ads_item_name color_ccc province_name_t" @click="clickReSelect('province')" v-else>
    50. 请选择省
    51. <img class="ads_item_right_icon" src="./files/reight_icon.png" />
    52. </div>
    53. <div class="ads_item_name clickCity">
    54. <div class="city_name"></div>
    55. <img class="ads_item_right_icon" src="./files/reight_icon.png" />
    56. </div>
    57. <div class="ads_item_name color_ccc city_name_t">
    58. 请选择市
    59. <img class="ads_item_right_icon" src="./files/reight_icon.png" />
    60. </div>
    61. <div class="ads_item_name clickArea">
    62. <div class="area_name"></div>
    63. <img class="ads_item_right_icon" src="./files/reight_icon.png" />
    64. </div>
    65. <div class="ads_item_name color_ccc area_name_t">
    66. 请选择县/
    67. <img class="ads_item_right_icon" src="./files/reight_icon.png" />
    68. </div>
    69. <div class="ads_item_name clickTown">
    70. <div class="town_name"></div>
    71. <img class="ads_item_right_icon" src="./files/reight_icon.png" />
    72. </div>
    73. <div class="ads_item_name color_ccc town_name_t">
    74. 请选择乡/
    75. <img class="ads_item_right_icon" src="./files/reight_icon.png" />
    76. </div>
    77. </div>
    78. <div class="ads_item_box">
    79. </div>
    80. </div>
    81. </div>
    82. <script type="text/javascript" src="./files/jquery.nicehover.js"></script>
    83. <script type="text/javascript" src="./files/distpicker.data.js"></script>
    84. <script type="text/javascript" src="./files/distpicker.js"></script>
    85. <script src="js/upFrom.js"></script>
    86. </body>

    js部分  upFrom.js

    1. const $http = 'https://aaa/';
    2. $(function() {
    3. $('#submit').on('click', function(event) {
    4. let par = {
    5. name: "",
    6. mobile: "",
    7. townAddress: "",
    8. townName: "",
    9. source: "PC"
    10. }
    11. par.name = $.trim($('#name').val());
    12. par.mobile = $.trim($('#mobile').val());
    13. for (let k in adsObj) {
    14. if (adsObj[k].adsId) {
    15. par.townName += adsObj[k].adsId + ','
    16. }
    17. if (adsObj[k].name) {
    18. par.townAddress += adsObj[k].name
    19. }
    20. }
    21. par.townName = par.townName.slice(0, -1)
    22. if (par.name == '') {
    23. var index = alert('请填写您的姓名!', {
    24. icon: 2
    25. }, function() {
    26. $('#name').focus();
    27. close(index);
    28. });
    29. return false;
    30. } else if (!/^\d{11}$/.test(par.mobile)) {
    31. return alert('请填写正确的的手机号');
    32. } else if (par.townAddress == '') {
    33. var index = alert('请选择要代理的区域');
    34. return
    35. }
    36. $.ajax({
    37. url: $http + 'system/ow-merchants-join/createGW',
    38. type: 'POST',
    39. contentType: 'application/json',
    40. data: JSON.stringify(par),
    41. })
    42. .done(function(data) {
    43. window.console && console.log(data);
    44. if (data.code == 0) {
    45. alert("提交成功")
    46. $('form')[0].reset();
    47. } else {
    48. alert(data.msg)
    49. $('form')[0].reset();
    50. }
    51. })
    52. .fail(function() {
    53. console.log("error");
    54. })
    55. .always(function() {
    56. console.log("complete");
    57. });
    58. });
    59. });
    60. function parseFormSerializedData(data) {
    61. var obj = {};
    62. var pairs = data.split('&');
    63. for (var i = 0; i < pairs.length; i++) {
    64. var pair = pairs[i].split('=');
    65. obj[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
    66. }
    67. return obj;
    68. }
    69. const adsObj = {
    70. province: {
    71. name: "",
    72. id: "",
    73. adsId: "",
    74. },
    75. city: {
    76. name: "",
    77. id: "",
    78. adsId: "",
    79. },
    80. area: {
    81. name: "",
    82. id: "",
    83. adsId: "",
    84. },
    85. town: {
    86. name: "",
    87. id: "",
    88. adsId: "",
    89. },
    90. showAddressList: [],
    91. provinceType: 0, //如果是直辖市就为1
    92. }
    93. // 点击选择地址框
    94. $('.join_region').on('click', function() {
    95. console.log(111)
    96. $('.popup_box').show();
    97. $('.popup_box_msk').show();
    98. $('.ads_item_name').hide()
    99. $('.province_name_t').show()
    100. getAdsList({}, 'system/city/getProvince')
    101. })
    102. $('.popup_box_msk').on('click', function() {
    103. let text = ""
    104. for (let k in adsObj) {
    105. if (adsObj[k].name) {
    106. text += adsObj[k].name
    107. }
    108. }
    109. if (text != '') {
    110. $('.join_region').text(text)
    111. }
    112. $('.popup_box').hide();
    113. $('.popup_box_msk').hide();
    114. })
    115. $('.clickProvince').on('click', function() {
    116. getAdsList({}, 'system/city/getProvince')
    117. })
    118. $('.clickCity').on('click', function() {
    119. getAdsList({
    120. province: adsObj.province.id
    121. }, 'system/city/getCity')
    122. })
    123. $('.clickArea').on('click', function() {
    124. getAdsList({
    125. province: adsObj.province.id,
    126. city: adsObj.city.id
    127. }, 'system/city/getArea')
    128. })
    129. $('.clickTown').on('click', function() {
    130. getAdsList({
    131. province: adsObj.province.id,
    132. city: adsObj.city.id,
    133. area: adsObj.area.id
    134. }, 'system/city/getTown')
    135. })
    136. function each(data) {
    137. $.each(data, function(index, item) {
    138. // 将每条数据添加到页面中
    139. $(".ads_item_box").append(`<div
    140. class='ads_list_item_name'
    141. data-id="${item.id}"
    142. data-town="${item.town}"
    143. data-area="${item.area}"
    144. data-city="${item.city}"
    145. data-province="${item.province}"
    146. data-name="${item.name}"
    147. > ${item.name}
    148. </div>`);
    149. });
    150. }
    151. // 获取省信息
    152. function getAdsList(parameter, url) {
    153. $(".ads_item_box").text("")
    154. let par = JSON.stringify(parameter)
    155. $.ajax({
    156. url: $http + url,
    157. type: 'POST',
    158. contentType: 'application/json',
    159. data: par,
    160. })
    161. .done(function(data) {
    162. window.console && console.log(data);
    163. // 遍历数据,然后将每个item添加到页面中
    164. each(data.data)
    165. })
    166. .fail(function() {
    167. console.log("error");
    168. })
    169. .always(function() {
    170. console.log("complete");
    171. });
    172. }
    173. // 获取市信息
    174. function getCity(parameter) {
    175. $(".ads_item_box").text("")
    176. let par = JSON.stringify(parameter)
    177. $.ajax({
    178. url: $http + 'system/city/getCity',
    179. type: 'POST',
    180. contentType: 'application/json',
    181. data: par,
    182. })
    183. .done(function(res) {
    184. if (res.data.length < 1) {
    185. adsObj.provinceType = 1
    186. $('.city_name_t').hide()
    187. $('.area_name_t').show()
    188. getAdsList({
    189. province: parameter.province,
    190. city: 1
    191. }, 'system/city/getArea')
    192. return
    193. } else {
    194. adsObj.provinceType = 0
    195. }
    196. // 遍历数据,然后将每个item添加到页面中
    197. each(res.data)
    198. })
    199. .fail(function() {
    200. console.log("error");
    201. })
    202. .always(function() {
    203. console.log("complete");
    204. });
    205. }
    206. // 点击列表项时获取点击的值
    207. $(".ads_item_box").on("click", "div", function() {
    208. var id = $(this).data('id');
    209. var province = $(this).data('province');
    210. var city = $(this).data('city');
    211. var area = $(this).data('area');
    212. var town = $(this).data('town');
    213. var name = $(this).data('name');
    214. if (city == 0) {
    215. $('.province_name').text(name)
    216. $('.clickProvince').show()
    217. $('.province_name_t').hide()
    218. $('.city_name_t').show()
    219. adsObj.province.name = name
    220. adsObj.province.id = province
    221. adsObj.province.adsId = id
    222. adsObj.city.name = ""
    223. adsObj.city.id = ""
    224. adsObj.city.adsId = ""
    225. adsObj.area.name = ""
    226. adsObj.area.id = ""
    227. adsObj.area.adsId = ""
    228. adsObj.town.name = ""
    229. adsObj.town.id = ""
    230. adsObj.town.adsId = ""
    231. getCity({
    232. province: province
    233. })
    234. } else if (area == 0) {
    235. $('.city_name').text(name)
    236. $('.clickCity').show()
    237. $('.city_name_t').hide()
    238. $('.area_name_t').show()
    239. adsObj.city.name = name
    240. adsObj.city.id = city
    241. adsObj.city.adsId = id
    242. adsObj.area.name = ""
    243. adsObj.area.id = ""
    244. adsObj.area.adsId = ""
    245. adsObj.town.name = ""
    246. adsObj.town.id = ""
    247. adsObj.town.adsId = ""
    248. getAdsList({
    249. province: province,
    250. city: city
    251. }, 'system/city/getArea')
    252. } else if (town == 0) {
    253. $('.area_name').text(name)
    254. $('.clickArea').show()
    255. $('.area_name_t').hide()
    256. $('.town_name_t').show()
    257. adsObj.area.name = name
    258. adsObj.area.id = area
    259. adsObj.area.adsId = id
    260. adsObj.town.name = ""
    261. adsObj.town.id = ""
    262. adsObj.town.adsId = ""
    263. getAdsList({
    264. province: province,
    265. city: city,
    266. area: area
    267. }, 'system/city/getTown')
    268. } else if (town) {
    269. $('.town_name').text(name)
    270. $('.clickTown').show()
    271. $('.town_name_t').hide()
    272. adsObj.town.name = name
    273. adsObj.town.id = town
    274. adsObj.town.adsId = id
    275. let text = ""
    276. for (let k in adsObj) {
    277. if (adsObj[k].name) {
    278. text += adsObj[k].name
    279. }
    280. }
    281. $('.join_region').text(text)
    282. $('.popup_box').hide();
    283. $('.popup_box_msk').hide();
    284. }
    285. });

    弹出层css部分

    1. .join_region{
    2. flex: 1;
    3. color: #717171;
    4. font-size: 15px;
    5. display: flex;
    6. align-items: center;
    7. justify-content: space-between;
    8. box-sizing: border-box;
    9. padding-right: 10px;
    10. cursor:pointer;
    11. }
    12. .popup_box{
    13. position: fixed;
    14. bottom: 0;
    15. left: 0;
    16. height: 60vh;
    17. width: 100%;
    18. background-color: aquamarine;
    19. display: none;
    20. cursor:pointer;
    21. }
    22. .popup_box_msk{
    23. position: fixed;
    24. width: 100%;
    25. height: 100%;
    26. background-color: rgba(0,0,0,0.6);
    27. top: 0;
    28. display: none;
    29. }
    30. .ads_popup{
    31. height: 100%;
    32. background-color: #fff;
    33. display: flex;
    34. flex-direction:column;
    35. box-shadow: 10px 10px 10px 10px #ccc;
    36. }
    37. .ads_name_box{
    38. padding:10px;
    39. border-bottom: 1px solid #ccc;
    40. font-size: 16px;
    41. }
    42. .ads_item_name{
    43. display: flex;
    44. justify-content: space-between;
    45. align-items: center;
    46. padding: 5px 0;
    47. }
    48. .ads_item_right_icon{
    49. width: 10px;
    50. height: 16px;
    51. }
    52. .popupShow_close{
    53. padding-bottom: 5px;
    54. display: flex;
    55. align-items: center;
    56. justify-content: space-between;
    57. }
    58. .ads_item_box{
    59. flex: 1;
    60. overflow-x: hidden;
    61. overflow: auto;
    62. font-size: 14px;
    63. box-sizing: border-box;
    64. padding: 0 10px;
    65. }
    66. .ads_list_item_name{
    67. padding: 8px 0;
    68. }
    69. .color_ccc{
    70. color: #7a7a7a;
    71. }
    72. .reight_icon{
    73. height: 13px;
    74. width: 8px;
    75. }

     地址数据请求后端接口 查询

    后端返回数据格式

    全国省市县镇 数据链接: https://pan.baidu.com/s/195H8n-rhEzLCPw0ssltcsQ

    提取码: hujx

    原码链接 链接: https://pan.baidu.com/s/1y_UeP1MUuDLU5hvCX6QFjQ

    提取码: ec5j

  • 相关阅读:
    【计算机网络】第三章·数据链路层 超硬核复习好物,考前必看!!!
    GBase 8c产品简介
    decompose transformation matrix
    发布系统的核心架构和功能设计
    【Elsevier出版社】网络通信类SCI,仅2-3个月左右录用
    Centos8安装部署JumpServer堡垒机
    【RP-RV1126】烧录固件使用记录
    3.容器的学习(2/2)
    ansible常用运维命令-基于centos8_ansible2.12.7_秘钥方式连接
    爬虫——爬虫初识、requests模块
  • 原文地址:https://blog.csdn.net/sdgjah2/article/details/134661952