最近在调整页面栏位赋值问题,在赋值语句之前存在ajax方法,在ajax方法中对赋值栏位有进行操作,ajax方法调用完毕后,栏位的赋值语句并不执行,添加alert语句后,赋值语句就执行了,搜寻网上的解决方法,如果是嵌入页面的脚本,有的是将该方法的<script></script>放置到页面的</body>标签之前, 加 defer 属性,即:<script type="text/javascript" defer>...但试过后均无效果,然后找的的合理解释是,之所以弹出alert赋值语句会执行,alert语句起到了延时的效果,为了替代alert的延时效果,我们使用setTimeOut方法,是的赋值语句延时执行,从而达到赋值效果,部分代码如下:
function editWindow(row){
if (row){
$('#dlg').dialog('open').dialog('setTitle','版本修改');
$('#fm').form('load',row);
if(row.districtCode.substr(2, 4)=="0000"){
$("#provinceCode").val(row.districtCode);
changeLevel('provinceCode','areaCode');
$("#areaCode").val("");
}else{
var pId = row.districtCode.substr(0, 2)+"0000";
$("#provinceCode").val(pId);
changeLevel('provinceCode','areaCode');
window.setTimeout(function(){$("#areaCode").val(row.districtCode);},100);
}
url = '<%=path%>/version/updateVersion';
}
}
changeLevel('provinceCode','areaCode');
为ajax方法
window.setTimeout(function(){$("#areaCode").val(row.districtCode);},100);
起到延时效果的js赋值语句,100为100毫秒(1000毫秒=1秒)