2011-05-09 74 views
0

我在ASP.NET MVC2电子商务网站上有购物车文本更新问题。当用户想要添加项目时,用户控制弹出窗口允许他们选择某些选项,然后单击“添加到购物车”。IE7 jquery文本更新问题

$(document).ready(function() { 
     $('#sizeselectform :radio:first').attr('checked', 'checked'); 

     $('#sizeselectform').ajaxForm(function() { 
      $('#sizeselectform').parents('div.popup').children('a.close').click(); 
      UpdateCartCount(); 
     }); 

    }); 

的UpdateCartCount功能只是更新在购物车中的商品的数量:

function UpdateCartCount() { 
    $.ajax({ 
     type: "GET", 
     url: "/ShoppingCart/GetCartItemsCount/", 
     success: function (result, status, xmlHttpRequest) {    
      $('#cartItemCount').text(result); 
     }, 
     error: function (xmlHttpRequest, status, e) { 
      var errorMessage = 'Login: ' + xmlHttpRequest.status + ' - ' + xmlHttpRequest.statusText; 
      $('#loginErrorMessage').html(errorMessage).show(); 
     }, 
     complete: function (xmlHttpRequest, status) { 

     } 
    });  
} 

一切在Chrome,火狐等工作正常,除了IE7。我怀疑在IE7中没有更新购物车数量,因为在调用UpdateCartCount()函数之前,父div已关闭,但此时我不确定。有什么建议么?

感谢,

编辑:

我改变调用POST,增加了高速缓存:“假”,内容类型:“应用程序/文本”,最后一个随机数的防止缓存的URL(所有针对此IE问题的建议解决方案)......并且ajax调用终于开始在IE中工作。

回答

0

我将呼叫改变为POST,添加了一个缓存:'false',content-type:'application/text',最后一个随机数到URL以防止缓存(对此IE问题的所有建议解决方案)。 ..和AJAX电话终于开始在IE浏览器工作。

0

如果div#cartItemCount在这个过程中不会被删除,应该不会有任何问题 您是否检查在IE7中是否触发ajax调用? 你可以在IE7模式下使用IE8以方便调试,或者在代码中添加一些警报()以检查UpdateCartCount()是否真的被调用

+0

感谢phikin - 我在ajax成功回调中插入了一个alert(results)语句。它在Firefox和Chrome中运行,但不在IE中运行。所以它看起来像ajax调用没有被触发在IE中。有没有解决方法? – fjxx 2011-05-09 20:22:19

0

我建议在成功回调中检查result的值。也许你必须为你的ajax请求指定dataType: 'text'。我认为它是文本,而不是HTML或Json。