在IE6、8中 、button點選事件(onclick)沒得反應經驗總結
首先宣告我不經常寫js程式碼.對瀏覽器的相容性積累經驗不夠,特別是IE6、7、8的相容,總結此文章以便自己和大家一起積累,少花不必要的時間。
下面是我的js程式碼:
/***
* 儲存修改資料
* @return
*/
function saveConten(){
$.ajax({
type:"POST",
url:"emp.do?param=UpdateEmpInfo",
data:{
"empId":$("#empId").val(),
"empNo":$("#empNo").val(),
"empName":$("#empName").val(),
"empLoginName":$("#empLoginName").val(),
"empLoginPass":$("#empLoginPass").val(),
"empTell":$("#empTell").val(),
"empEmail":$("#empEmail").val(),
"empRemark":$("#empRemark").val(),
"empSex":document.getElementById("empSex2").value,
},
dataType:"json",
success:function (json){
closeWindow();
alert("修改成功!");
window.location.reload();
},
error:function(){alert("載入員工資訊失敗,請重試!");}
});
}
,我沒加這段程式碼的時候,整個頁面的其它js程式碼在IE6、8正常工作,但我加了這段程式碼後,整個頁面的js程式碼就不聽話了(onclick沒得反應).大家看到我的js程式碼哪兒有錯嗎?在json封裝資料的時候,最後一個屬性多了一個逗號(",")
"empSex":document.getElementById("empSex2").value,把這個多的逗號去掉就行了.
我在做一個專案時,<a onclick="我的方法">在IE6、8始終沒有載入我的一個引入的js程式碼,在網上找了可能有2個小時,都無濟於事,突然看到一位哥們的blog說使用onload來測試載入的我Js程式碼.我才發現是沒有載入我的js程式碼,我引入的js程式碼路徑絕對是正確的,我也清空了IE6、8的快取.不知道是什麼原因。隨後我把js程式碼寫在呼叫頁面onclick就呼叫我的js程式碼了。
總結:如果<a>或button的onclick事件沒得反應,首先檢查js程式碼有錯沒得,使用<body onload="你的方法">這種方式可以檢測你的js程式碼是否有錯,如果這樣能執行你的方法中的程式碼,仍然還報錯,那麼再看你的onclick事件的有不有單引號或雙引號寫錯,或者檢視不個頁面程式碼是否多了或少了什麼符號.
由於IE6、8對逗號、單/雙引號特別的感冒,所有大家在寫js程式碼要注意這些細節,不然找錯找得你想吐。