求助,省市两级联动的问题,怎么从后台给select赋值

小炮爱提莫 2017-06-17 04:28:47
现在是有一个数据列表,里面有省市,我要进入编辑界面,把这个省市让select给选中,现在是省份可以选中,但是城市选不中,求教,下面放我的代码
这是js代码
var arr = new Array();
arr[0] = "北京"
arr[1] = "上海"
arr[2] = "天津"
arr[3] = "重庆"
arr[4] = "石家庄,邯郸,邢台,保定,张家口,承德,廊坊,唐山,秦皇岛,沧州,衡水"
arr[5] = "太原,大同,阳泉,长治,晋城,朔州,吕梁,忻州,晋中,临汾,运城"
arr[6] = "呼和浩特,呼伦贝尔,通辽,赤峰,巴彦淖尔,乌兰察布,包头,鄂尔多斯,乌海"
arr[7] = "沈阳,大连,鞍山,抚顺,本溪,丹东,锦州,营口,阜新,辽阳,盘锦,铁岭,朝阳,葫芦岛"
arr[8] = "长春,吉林,四平,辽源,通化,白山,松原,白城,延边"
arr[9] = "哈尔滨,齐齐哈尔,牡丹江,佳木斯,大庆,绥化,鹤岗,鸡西,黑河,双鸭山,伊春,七台河,大兴安岭"
arr[10] = "南京,镇江,苏州,南通,扬州,盐城,徐州,连云港,常州,无锡,宿迁,泰州,淮安"
arr[11] = "杭州,宁波,温州,嘉兴,湖州,绍兴,金华,衢州,舟山,台州,丽水"
arr[12] = "合肥,芜湖,蚌埠,马鞍山,淮北,铜陵,安庆,黄山,滁州,宿州,池州,淮南,阜阳,六安,宣城,亳州"
arr[13] = "福州,厦门,莆田,三明,泉州,漳州,南平,龙岩,宁德"
arr[14] = "南昌,景德镇,九江,鹰潭,萍乡,新余,赣州,吉安,宜春,抚州,上饶"
arr[15] = "济南,青岛,淄博,枣庄,东营,烟台,潍坊,济宁,泰安,威海,日照,莱芜,临沂,德州,聊城,滨州,菏泽"
arr[16] = "郑州,开封,洛阳,平顶山,安阳,鹤壁,新乡,焦作,濮阳,许昌,漯河,三门峡,南阳,商丘,信阳,周口,驻马店"
arr[17] = "武汉,宜昌,荆州,襄樊,黄石,荆门,黄冈,十堰,恩施,潜江,天门,仙桃,随州,咸宁,孝感,鄂州"
arr[18] = "长沙,常德,株洲,湘潭,衡阳,岳阳,邵阳,益阳,娄底,怀化,郴州,永州,湘西,张家界"
arr[19] = "广州,深圳,珠海,汕头,东莞,中山,佛山,韶关,江门,湛江,茂名,肇庆,惠州,梅州,汕尾,河源,阳江,清远,潮州,揭阳,云浮"
arr[20] = "南宁,柳州,桂林,梧州,北海,防城港,钦州,贵港,玉林,南宁地区,柳州地区,贺州,百色,河池"
arr[21] = "海口,三亚,三沙,儋州"
arr[22] = "成都,绵阳,德阳,自贡,攀枝花,广元,内江,乐山,南充,宜宾,广安,达川,雅安,眉山,甘孜,凉山,泸州"
arr[23] = "贵阳,六盘水,遵义,安顺,铜仁,黔西南,毕节,黔东南,黔南"
arr[24] = "昆明,大理,曲靖,玉溪,昭通,楚雄,红河,文山,思茅,西双版纳,保山,德宏,丽江,怒江,迪庆,临沧"
arr[25] = "拉萨,日喀则,山南,林芝,昌都,阿里,那曲"
arr[26] = "西安,宝鸡,咸阳,铜川,渭南,延安,榆林,汉中,安康,商洛"
arr[27] = "兰州,嘉峪关,金昌,白银,天水,酒泉,张掖,武威,定西,陇南,平凉,庆阳,临夏,甘南"
arr[28] = "银川,石嘴山,吴忠,固原"
arr[29] = "西宁,海东,海南,海北,黄南,玉树,果洛,海西"
arr[30] = "乌鲁木齐,石河子,克拉玛依,伊犁,巴音郭勒,昌吉,克孜勒苏柯尔克孜,博 尔塔拉,吐鲁番,哈密,喀什,和田,阿克苏"
arr[31] = "香港"
arr[32] = "澳门"
arr[33] = "台北,高雄,台中,台南,屏东,南投,云林,新竹,彰化,苗栗,嘉义,花莲,桃园,宜兰,基隆,台东,金门,马祖,澎湖"

window.onload=function(){
var city = document.getElementById("city");
var cityArr = arr[0].split(",");
for (var i = 0; i < cityArr.length; i++) {
city[i] = new Option(cityArr[i], cityArr[i]);
}
}

function getCity() {
var pro = document.getElementById("province");
var city = document.getElementById("city");
var index = pro.selectedIndex;
var cityArr = arr[index].split(",");

city.length = 0;
//将城市数组中的值填充到城市下拉框中
for (var i = 0; i < cityArr.length; i++) {
city[i] = new Option(cityArr[i], cityArr[i]);
}
}





<dl id="dl_editor">
<dt><label class="edbox-item-label">省份: </label>
</dt>
<dd>
<%--<asp:DropDownList ID="province" runat="server" CssClass="ComboBox" />--%>
<select id="province" name="province" size="1" style="width:180px" onchange="getCity()">
<option value= "北京" >北京</option>
<option value= "上海" >上海</option>
<option value= "天津" >天津</option>
<option value= "重庆" >重庆</option>
<option value= "河北" >河北</option>
<option value= "山西" >山西</option>
<option value= "内蒙古" >内蒙古</option>
<option value= "辽宁" >辽宁</option>
<option value= "吉林" >吉林</option>
<option value= "黑龙江" >黑龙江</option>
<option value= "江苏" >江苏</option>
<option value= "浙江" >浙江</option>
<option value= "安徽" >安徽</option>
<option value= "福建" >福建</option>
<option value= "江西" >江西</option>
<option value= "山东" >山东</option>
<option value= "河南" >河南</option>
<option value= "湖北" >湖北</option>
<option value= "湖南" >湖南</option>
<option value= "广东" >广东</option>
<option value= "广西" >广西</option>
<option value= "海南" >海南</option>
<option value= "四川" >四川</option>
<option value= "贵州" >贵州</option>
<option value= "云南" >云南</option>
<option value= "西藏" >西藏</option>
<option value= "陕西" >陕西</option>
<option value= "甘肃" >甘肃</option>
<option value= "宁夏" >宁夏</option>
<option value= "青海" >青海</option>
<option value= "新疆" >新疆</option>
<option value= "香港" >香港</option>
<option value= "澳门" >澳门</option>
<option value= "台湾" >台湾</option>
</select>
<script type="text/javascript">
document.getElementById('province').value = '<%=province%>'
</script>
</dd>
</dl>
<dl id="dl_linkurl">
<dt><label class="edbox-item-label">城市: </label>
</dt>
<dd>
<%--<asp:DropDownList ID="city" runat="server" CssClass="ComboBox" />--%>
<select id="city" name="city" size="1" style="width:180px" >
</select>
<script type="text/javascript">
document.getElementById('city').value = '<%=city%>'
</script>
</dd>
</dl>



...全文
826 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
是张三三呀 2020-12-01
  • 打赏
  • 举报
回复
那个,请问一下解决了吗,我也是遇到了相同的问题
qiuyongaaa 2018-08-12
  • 打赏
  • 举报
回复

市的值无法初始华,是不是省赋值时,调用了联动赋值的JS???使得市的值被重置了
在联动操作的JS上加上onFoucs的判断,即:当用户操作时才联动,否则程序可以正常给值。
十七吖0811 2018-08-10
  • 打赏
  • 举报
回复
在编辑操作上发两个函数,和新增页面的onchange函数一样,唯一不一样的是,把查出来的id加selected,希望对大家有帮助
 $("#select_city").append("<option value='+data.data.data[i].codeId+' " + (data.data.data[i].codeId == select_city1?"selected":"")+">"+data.data.data[i].name+"</option>");
  • 打赏
  • 举报
回复
引用 12 楼 happybebe 的回复:
不建议把省和市放在同一张表中,分开两张表关联不是更方便吗? 后台传值的时候传递两个字段,一个省份id,一个城市id。 前台的city的select value $("#city").val(城市id) 即可
俩张表级联
  • 打赏
  • 举报
回复
不建议把省和市放在同一张表中,分开两张表关联不是更方便吗? 后台传值的时候传递两个字段,一个省份id,一个城市id。 前台的city的select value $("#city").val(城市id) 即可
小炮爱提莫 2017-06-18
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
<script type="text/javascript"> document.getElementById('province').value = '<%=province%>' //指定了省份 getCity() //就要初始化城市 </script>
就是这里有点问题,只要点击进来,省份可以,城市就要被初始化了,这个问题有什么好的思路解决吗
xuzuning 2017-06-18
  • 打赏
  • 举报
回复
<script type="text/javascript"> document.getElementById('province').value = '<%=province%>' //指定了省份 getCity() //就要初始化城市 </script>
小炮爱提莫 2017-06-18
  • 打赏
  • 举报
回复
引用 8 楼 xuzuning 的回复:
去掉 <%--<asp:DropDownList ID="province" runat="server" CssClass="ComboBox" />--%> <%--<asp:DropDownList ID="city" runat="server" CssClass="ComboBox" />--%> 两行 相信你也不至于不把 js 代码用 script 标记包裹起来
你没懂我的问题,这个省市联动是没问题的,现在问题是,我点击编辑进入这个界面,后台有省份跟城市要传进来放到这两个下拉框中,我是通过这个来赋值的 <script type="text/javascript">                   document.getElementById('province').value = '<%=province%>'                               </script> 但是省份的可以赋值进去,城市的就不行了
xuzuning 2017-06-17
  • 打赏
  • 举报
回复
去掉
<%--<asp:DropDownList ID="province" runat="server" CssClass="ComboBox" />--%>
<%--<asp:DropDownList ID="city" runat="server" CssClass="ComboBox" />--%>
两行
相信你也不至于不把 js 代码用 script 标记包裹起来
小炮爱提莫 2017-06-17
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
这无所谓的,新谁都不如信自己 我只知道用那两个,在我这里就一事无成 去掉了就一帆风顺
现在并不是一帆风顺啊,进入编辑界面,也就是这个界面,从后台获取的省份可以在下拉框中显示,但是城市显示不了
xuzuning 2017-06-17
  • 打赏
  • 举报
回复
这无所谓的,新谁都不如信自己 我只知道用那两个,在我这里就一事无成 去掉了就一帆风顺
小炮爱提莫 2017-06-17
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
<!-- .... --> 才是注释!!!
vs里的,不要纠结注释了好吗
xuzuning 2017-06-17
  • 打赏
  • 举报
回复
<!-- .... --> 才是注释!!!
小炮爱提莫 2017-06-17
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
请从网站上运行 否则将形如这样的标记删去:<%--<asp:DropDownList ID="province" runat="server" CssClass="ComboBox" />--%>
??,这就是代码注释,没影响啊
xuzuning 2017-06-17
  • 打赏
  • 举报
回复
请从网站上运行 否则将形如这样的标记删去:<%--<asp:DropDownList ID="province" runat="server" CssClass="ComboBox" />--%>
小炮爱提莫 2017-06-17
  • 打赏
  • 举报
回复
这边省份这个select下拉框可以获取到后台的值,但是,城市这里就不行了,一直显示北京,新手刚入门,求教,这个省市联动,我也是参照csdn其他人代码的,但忘记是哪个人的了,希望看到能谅解

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧