2011-01-11 75 views
0

我已经写了这个ajaxform函数带有一个成功函数,它正在调用表单。 ajaxform在除IE之外的任何浏览器中非常有用。我不明白为什么IE不通过这个函数。IE浏览器没有通过AJAXFORM中的成功功能

给ajaxForm:

function setupAjaxForm(form_class, updateStatus){ 
      var form = '.'+form_class; 
      var form_action = $(form).attr('action'); 
      var form_url = form_action+"ajax/"; 

      var submitOptions = { 
        url : form_url, 
        type : 'POST', 
        dataType : 'json', 
        success : function(json) { 
        var results = json.results; 
           alert(results); 
        if(results == "success"){ 
         updateStatus(json); 
        }else{ 
         alert(" FAIL "); 
            } 
        } 
      }; 
      $(form).ajaxForm(submitOptions); 
     } 

成功功能:

function addProductCartStatus(json){ 
    alert(" Entered for jquery "); 
} 

调用函数

$(document).ready(function(){ 
    $('.addto_cart').click(function(){new setupAjaxForm('add_cartForm',addProductCartStatus);}); 
}); 
+0

没有理由为`新`这里,你没有调用构造函数。此外,你的代码缩进是可怕的,我花了3次尝试找出警报后的`}`匹配匿名函数...... – 2011-01-11 21:50:00

+0

它在Firefox和其他浏览器中工作,它/不/工作在IE浏览器。所以,这意味着所有的功能都起作用。在哪个警报之后?如果我错了,请解释一下自己。 – 2011-01-11 21:55:47

回答

0

这个答案主要是去你的最新评论

的Internet Explorer在某些情况下更硬。提到这条线result = "success"是错误的,转换结果与在它的词成功的一个字符串,总是true,所以它总是更新

也是其推荐给你的Ajax调用增加一个error:function(){}

0
if(result = "success") 

应该

if(result == "success") 

和 “{” 你应该用你如果

if(result == "success") { 
    updateStatus(json); 
} else { 
+0

其实它应该是'===`,因为没有人应该玩类型强制魔术的俄罗斯轮盘赌,是的,它可能是正确的字符串==字符串,但它是一致性的问题:) – 2011-01-11 22:04:21