我正在一个客户端的网站上工作,该工作应该是添加联系人窗体和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