我正在一個客戶端的網站上工作,該工作應該是添加聯繫人窗體和Validate插件的第二份工作。jQuery AJAX不能在任何IE中工作,但在Firefox,Opera,Chrome和Safari中可以正常工作
我以爲一切都很好,直到我到了IE瀏覽器。
所有其他瀏覽器都能正常工作,但經過數小時的修補之後,我有50%的人修復了IE問題。現在我真的被卡住了。
在沒有顯示出來之前,我花了很多時間讓驗證插件按照需要工作。
現在降級到jQuery v1.5.2並使用Validate v1.8後,顯示錯誤並提交,如果阻止。
但現在它不會在表單沒有問題時提交表單。
這是我在其他所有瀏覽器中都能正常工作的代碼。
<script type="text/javascript">
$(document).ready(function() {
$("#node").hide();
$("#success").hide();
$.ajaxSetup({
cache: false
});
$("#contact_form").validate({
submitHandler: function (form) {
var str = $(form).serialize();
$.ajax({
type: "POST",
url: 'http://www.french-tuition.co.uk/proccess_contact.php',
dataType: 'text',
cache: false,
data: 'ajax=true&' + str,
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success: function (msg) {
$("#node").ajaxComplete(function (event, request, settings) {
result = msg;
$("#node").html(result);
if (msg == 'success') {
$("#node").hide();
$("#contact_form").fadeOut("slow");
$("#success").fadeIn("slow");
} else {
result = msg;
$("#node").html(result);
$("#node").fadeIn("slow");
}
});
}
});
return false;
}
});
});
</script>
錯誤絕對是提交功能處理程序中(我測試通過添加alert();
函數來檢查,我能得到儘可能之前Ajax調用具有報警功能,而不是之後。)
因此,IE和這個功能正在發生變化
爲什麼你有一個ajaxComplete綁定裏面的ajax成功處理程序?除非你成功提交這個東西兩次 – Sinetheta