2011-11-28 119 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

相关问题