[英]Javascript/jQuery not working in Firefox, Safari and IE. Fine in Opera and Chrome
[英]jQuery AJAX not working in any IE, but fine in Firefox, Opera, Chrome and Safari
我正在客户的网站上工作,仅添加联系表单和Validate插件应该是一秒钟的工作。
我认为一切都很好,直到我到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();
函数来检查。我可以在使用alert函数的ajax调用之前,但不能在之后。)
所以IE和这个功能正在发生一些事情
为什么要在成功函数中绑定#node上的ajaxComplete处理程序? 您不能更改为:
success: function (msg) {
if (msg == 'success') {
$("#node").hide();
$("#contact_form").fadeOut("slow");
$("#success").fadeIn("slow");
} else {
$("#node").html(msg);
$("#node").fadeIn("slow");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.