2011-05-09 72 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。