关于city.js选择城市修改编辑时回显问题

引入<script src="/public/js/city.js"></script>的js,在选择省市县时,还是比较方便的

加入以下代码

var cityAll = city.citylist;
$.each(cityAll, function(i, n) {
			$("#provinceName").append(
					'<option value="'+ n.p + '">' + n.p + '</option>');
		});
		$("#provinceName,#cityName").change(
						function() {
							if ($(this).attr("id") == "provinceName") {
								$("#cityName").html("").next().html("").append('<option value="县、镇">县、镇</option>');
							} else {
								$("#townName").html("").append('<option value="县、镇">县、镇</option>');
							}
							$.each(cityAll, function(j, k) {
								if ($("#provinceName").val() == k.p) {
									$.each(k.c,function(l,m) {
										$("#cityName").append('<option value="'+ m.n + '">'+ m.n + '</option>');
											if (m.a) {
												$("#townName").show();
												if ($("#cityName").val() == m.n) {
													$.each(m.a,function(e,f) {
														$("#townName").append('<option value="'+ f.s + '">'+ f.s+ '</option>');
													});
												}
											} else {
												$("#townName").hide();

											}});
										}
									});
						});

在jsp或html文件中

<td class="tl"><b></b>员工地址</td>
 <td class="tr" id="" colspan="5">
 <select class=" " id="provinceName" name="provinceName">
          <option>${userInfo.provinceName }</option>
  </select>
 <select class=" " id="cityName" name="cityName">
              <option>${userInfo.cityName }</option>
 </select>
 <select class=" " id="townName" name="townName">
            <option>${userInfo.townName }</option>
 </select>

新增时可以的,反正只是选择,但是如果是编辑,就会出现城市或乡镇选择不了情况,如下图

这个问题困扰我好久,一直没有解决,后来一个偶然的机会,我把改变城市的代码提取出来就可以的了,

$.each(cityAll, function(j, k) {
				if ($("#provinceName").val() == k.p) {
					$.each(k.c,function(l,m) {
						$("#cityName").append('<option value="'+ m.n + '">'+ m.n + '</option>');
							if (m.a) {
								$("#townName").show();
								if ($("#cityName").val() == m.n) {
									$.each(m.a,function(e,f) {
										$("#townName").append('<option value="'+ f.s + '">'+ f.s+ '</option>');
									});
								}
							} else {
								$("#townName").hide();

							}});
						}
					});

 

整个代码结构

var cityAll = city.citylist;
		
		$(function(){
			changeCity();
		});
		
		//改变城市
		function changeCity() {
			$.each(cityAll, function(j, k) {
				if ($("#provinceName").val() == k.p) {
					$.each(k.c,function(l,m) {
						$("#cityName").append('<option value="'+ m.n + '">'+ m.n + '</option>');
							if (m.a) {
								$("#townName").show();
								if ($("#cityName").val() == m.n) {
									$.each(m.a,function(e,f) {
										$("#townName").append('<option value="'+ f.s + '">'+ f.s+ '</option>');
									});
								}
							} else {
								$("#townName").hide();

							}});
						}
					});
		}
		
		$.each(cityAll, function(i, n) {
			$("#provinceName").append(
					'<option value="'+ n.p + '">' + n.p + '</option>');
		});
		$("#provinceName,#cityName").change(
						function() {
							if ($(this).attr("id") == "provinceName") {
								$("#cityName").html("").next().html("").append('<option value="县、镇">县、镇</option>');
							} else {
								$("#townName").html("").append('<option value="县、镇">县、镇</option>');
							}
							$.each(cityAll, function(j, k) {
								if ($("#provinceName").val() == k.p) {
									$.each(k.c,function(l,m) {
										$("#cityName").append('<option value="'+ m.n + '">'+ m.n + '</option>');
											if (m.a) {
												$("#townName").show();
												if ($("#cityName").val() == m.n) {
													$.each(m.a,function(e,f) {
														$("#townName").append('<option value="'+ f.s + '">'+ f.s+ '</option>');
													});
												}
											} else {
												$("#townName").hide();

											}});
										}
									});
						});

 

这可以了,既能新增,又能编辑修改,解决问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值