无法找到错误的AJAX函数提交表格
我有这个功能在只有IE8alert
不会触发和ajax
部分根本不运行。然后提交表格,尽管return false
。这是为什么发生?为什么只发生在IE8中?无法找到错误的AJAX函数提交表格
$(document).ready(function(){
$('form[name="DownloadForm"]').submit(function(){
var valCases = new Array()
valCases.push(($('input[name="firstname"]').val()!="") ? true : false)
valCases.push(($('input[name="lastname"]').val()!="") ? true : false)
valCases.push(($('input[name="company"]').val()!="") ? true : false)
valCases.push(($('input[name="email"]').val()!="") ? true : false)
alert(valCases.indexOf(false)) //this alert doesn't fire!
if (valCases.indexOf(false)==-1) {
$.ajax({
url: url,
type: 'POST',
data: $(this).serialize(),
beforeSend: function(){
//before
},
success: function(data) {
//do something
},
error: function(data) {
//error
}
});
return false;
} else {
$('.inl-table tr').each(function(index){
if (index==valCases.indexOf(false)) {
$(this).next().children('th').css('color','red');
}
});
return false;
}
return false;
});
});
的问题可能是,这个阵列功能不存在IE8:
valCases.indexOf(false)
这不会解释失踪的警告当然:)
编辑的,好的,我读错了你的代码。它解释了失踪警报;)
你会发现这个链接下填充工具: MDN - Array indexOf
既然你已经使用jQuery,你可能会藏汉使用jQuery.inArray
其回落到一个本地indexOf
功能时可用。
这将解释缺少的警报。如果尝试执行'valCases.indexOf(false)'时会引发错误,那么警报不会显示。 – 2013-04-04 13:41:01
这是错误。使用polyfill为IE8提供indexOf函数修复它。 – 2013-04-04 13:41:44
[MDN页面](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf)提供了有关为不支持它的浏览器提供此功能的信息。不确定您是否想将其作为答案的一部分。 – 2013-04-04 13:43:38
使用了AJAX功能吧:
var dd =$(this).serialize();
在阿贾克斯
data :dd,
HTML请...也许你错过了一个提交按钮。我有这个问题,一旦浏览器忽略了一个jquery .submit(),因为我的HTML – ggzone 2013-04-04 13:37:58
中缺少一个在表单中有一个类型为submit的按钮。 – greener 2013-04-04 13:38:49
你为什么不用分号来终止这一行?这可能是错误的原因,而不是在IE中读取。 IE浏览器是阅读JS的最差的浏览器。所以添加分号然后尝试。 – 2013-04-04 13:39:39