自己写的多级联动下拉框,省份部分有绑定数据
1 Ep_zone objZone = new Ep_zone(); 2 Zone zone = new Zone(); 3 sleSheng.DataSource = zone.GetProvince(); 4 sleSheng.DataTextField = "ZONENAME"; 5 sleSheng.DataValueField = "ZONE"; 6 sleSheng.DataBind();
第一个问题:后面的下拉框就是用JS通过AJAX附加的,,这种情况下在后台获取不到值(代码见最后一段),自己推测是因为在前台附加,所以获取不到值,但是完全找不到改的方向。
第二个问题:最初用JS写的嵌套,所以用find("option").remove()可以清空所有子级的数据,现在只能清空下一级,这个要怎么修改呢?
JS部分:
1 1 //地址级联选择 2 2 function sleZone(zone, subZone) { 3 3 $.ajax({ 4 4 type: "POST", 5 5 dataType: "json", 6 6 url: "ZoneListHandler.ashx", 7 7 contentType: "application/x-www-form-urlencoded; charset=utf-8", 8 8 data: { 9 9 getmethod: "GetSubZone", 10 10 id: $("#" + zone + "").val() 11 11 }, 12 12 success: function (record) { 13 13 $("#" + subZone + "").find("option").remove(); 14 14 if (true == record.Successful) { 15 15 for (var i = 0; i < record.obj.length; i++) { 16 16 $("#" + subZone + "").append('<option value="' + record.obj[i].Zone + '">' + record.obj[i].Zonename + '</option>'); 17 17 } 18 18 } 19 19 } 20 20 }) 21 21 }
前台部分:
1 <span class="select-box size-MINI address"> 2 <select id="sleSheng" class="select" runat="server" onchange="sleZone('sleSheng','sleShi');" onkeydown="KJkeydown('sleShi','txtRemark','form1');"></select> 3 </span> 省 4 <span class="select-box size-MINI address"> 5 <select id="sleShi" class="select" runat="server" onchange="sleZone('sleShi','sleXianQu');" onkeydown="KJkeydown('sleXianQu','sleSheng','form1');"></select> 6 </span> 市 7 <span class="select-box size-MINI address"> 8 <select id="sleXianQu" class="select" runat="server" onchange="sleZone('sleXianQu','sleZhenXiang');" onkeydown="KJkeydown('sleZhenXiang','sleShi','form1');"></select> 9 </span> 县、区 10 <span class="select-box size-MINI address"> 11 <select id="sleZhenXiang" class="select" runat="server" onchange="sleZone('sleZhenXiang','sleCunShequ');" onkeydown="KJkeydown('sleCunShequ','sleXianQu','form1');"></select> 12 </span> 镇、乡、街道 13 <span class="select-box size-MINI address"> 14 <select id="sleCunShequ" class="select" runat="server" onkeydown="KJkeydown('btnSave','sleZhenXiang','form1');"></select> 15 </span> 村、社区
后台部分:除了第一个sleSheng.value均获取不到值,Keys里只有三个
obj_organ.Zone = sleSheng.Value + sleShi.DataTextField + sleXianQu.DataValueField + sleZhenXiang.Attributes.Keys + sleCunShequ.Value;
在ajax里加上 async : false,试试
已经测试了,对两个问题都没有效果