2011-11-28 165 views
1

我正在一個客戶端的網站上工作,該工作應該是添加聯繫人窗體和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和這個功能正在發生變化

+0

爲什麼你有一個ajaxComplete綁定裏面的ajax成功處理程序?除非你成功提交這個東西兩次 – Sinetheta

回答

3

你爲什麼要在成功函數中綁定#node上的ajaxComplete處理程序?你不能改變爲:

success: function (msg) { 
    if (msg == 'success') { 
     $("#node").hide(); 
     $("#contact_form").fadeOut("slow"); 
     $("#success").fadeIn("slow"); 
    } else { 
     $("#node").html(msg); 
     $("#node").fadeIn("slow"); 
    } 
} 
+0

幾乎在那裏不應該開火。現在儘量不要暗示他在處理器內嵌入了「如果成功」,只能觸發「如果成功」 – Sinetheta

+0

呃,這在我看來就像是他正在實施的自定義消息。所以在他的情況下,很可能會有一個「成功」的迴應(意思是200),實際上表明(從他的商業邏輯角度來看)「成功」以外的東西。不是我們可以假設的東西是不正確的。 –

+0

夠公平的。我認爲它更可能是他複製粘貼的代碼(就像成功的完整內容),雖然 – Sinetheta

相關問題