IE7 jquery文本更新问题

时间:2011-05-09 19:42:54

标签: jquery internet-explorer-7

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

  $(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) {

        }
    });    
}

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

谢谢,

修改

我将调用更改为POST,添加了缓存:'false',content-type:'application / text',最后是URL的随机数,以防止缓存(所有建议的IE问题解决方案) 。并且ajax调用终于开始在IE中工作了。

3 个答案:

答案 0 :(得分:0)

如果在此过程中不会删除div#cartItemCount,则不会出现任何问题 您是否检查过IE7中是否触发了ajax调用? 您可以在IE7模式下使用IE8以便于调试或在代码中添加一些警告()来检查带有$ ajax的UpdateCartCount()是否真的被调用

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我将调用更改为POST,添加了缓存:'false',content-type:'application / text',最后是URL的随机数,以防止缓存(所有建议的IE问题解决方案) 。并且ajax调用终于开始在IE中工作了。