1. 程式人生 > >解決js賦值時需要新增alert方法賦值才成功否則賦值語句不執行問題

解決js賦值時需要新增alert方法賦值才成功否則賦值語句不執行問題

        最近在調整頁面欄位賦值問題,在賦值語句之前存在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秒)