处理省份的数据真是个头疼的事情,今天写修改信息时,页面上的下拉框已经有值了,但是下拉框上却没有显示出来绑定过来的值,看了很久,结果是因为绑定下拉框的值的方法写在了ajax请求后面,这样就会存在ajax方法还没执行完,就先执行方法了,说的迷迷糊糊的,看代码吧还是
这个是页面的jsp
<tr onMouseOut="this.style.backgroundColor='#ffffff'" onMouseOver="this.style.backgroundColor='#edf5ff'"><td align="right" valign="middle" class="borderright borderbottom bggray"><spanclass="colorred">*</span>省份:</td><td align="left" valign="middle" class="borderbottom main-for"><select class="selected" name="locProv" id="province" data-selected="${tbrhInfo.locProv}"><option value="">全部</option></select></td></tr><tr onMouseOut="this.style.backgroundColor='#ffffff'" onMouseOver="this.style.backgroundColor='#edf5ff'"><td align="right" valign="middle"class="borderright borderbottom bggray"><spanclass="colorred">*</span>城市:</td><td align="left" valign="middle" class="borderbottom main-for"><select class="selected" name="locCity" id="city" data-selected="${tbrhInfo.locCity}"><option value="">全部</option></select></td></tr>
错误原因是因为方法写错了位置,现在的位置是正确的
先写动态设置 option 的selected 选项的方法
function bindOption(name){var selected = $("select[name='"+name+"']").data("selected");if(selected==""||selected==null||selected==undefined){}else{$("select[name='"+name+"'] option[value=" + selected + "]") .attr("selected", true);}}
绑定原对象的地址值
$(function(){$.ajax({ url :'${pageContext.request.contextPath}/agent/province', type:'post', //数据发送方式 dataType:'json', //接受数据格式 success:function(data){var optionstring = "";for (var i =0;i<data.length;i++){optionstring += "<option value=\"" +data[i].areaId + "\" >" + data[i].areaName + "</option>";}$("#province").html("<option value=''>请选择</option> "+optionstring);selectProvInit();}}); })
function selectProvInit(){bindOption("locProv");var opt = $("select[name='locProv'] ") .val();$.ajax({ url :'${pageContext.request.contextPath}/agent/city?areaId='+opt, type:'post', //数据发送方式 dataType:'json', //接受数据格式 success:function(data){var optionstring = "";for (var i =0;i<data.length;i++){optionstring += "<option value=\"" +data[i].areaId + "\" >" + data[i].areaName + "</option>";}$("#city").html("<option value=''>请选择</option> "+optionstring);bindOption("locCity");}}); }
当选择省后将id传到后台获取相对应的城市
$("#province").change(function() {var opt = $("#province").val();$.ajax({ url :'${pageContext.request.contextPath}/agent/city?areaId='+opt, type:'post', //数据发送方式 dataType:'json', //接受数据格式 success:function(data){var optionstring = "";for (var i =0;i<data.length;i++){optionstring += "<option value=\"" +data[i].areaId + "\" >" + data[i].areaName + "</option>";}$("#city").html("<option value=''>请选择</option> "+optionstring);}}); })
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态