IE表单元素(复选框)问题。尝试过几件事

时间:2011-08-04 22:50:20

标签: jquery html css internet-explorer cross-browser

这是交易。我已经建立了一个上市的网站lumber handling products our company sells,它在Firefox,Chrome等中运行良好。在IE(7,8和9)中,渲染很好,但是我们的报价形式有一个特殊的问题。 / p>

当用户浏览网站并看到他们喜欢的内容时,他们可以点击“添加到报价请求”,并将其添加到当前会话中的报价请求中。如果他们想要审查或完成他们的请求,他们会预先选择他们感兴趣的内容。这是一个显示预期行为的截屏视频:

http://screencast.com/t/YPSbWjVe

我通过jquery $ .get请求http://lumberhandling.com/quote来抓取表单。

以下是IE9中相同活动的截屏视频:

http://screencast.com/t/3jRHSLUjC

我做了完全相同的事情,但是如果我点击引用请求按钮并激活模态,我就会“第一次”在模态中检查的内容中​​“卡住”。在我在地址栏中输入引用网址并转到后备页面http://lumberhandling.com/quote

之前,我无法更新模态内容

我甚至尝试强制检查以确保选择的项目(这些项目存储在数据库会话中)被选中:

function checkQuoteItems()
{
    $(document).bind('cbox_complete', function() 
    {
        $.getJSON("/quote/check_quote_items", function(json) {
            $(json.items).each(function(index, value)
            {
                var solution = 'solution_'+value;
                $('.checkbox[name="'+solution+'"]').attr('checked', 'checked');
            });
        });
    });
}
可悲的是,IE中没有骰子。有人能指出我正确的调试方向吗?我有点不知所措。

2 个答案:

答案 0 :(得分:1)

我想出了我的问题。问题是表单的URL被缓存在IE中。为了解决问题,我使用了缓存设置为false的ajax请求。

function checkQuoteItems()
{
    $(document).bind('cbox_complete', function() 
    {
        $.ajax({
              url: "/quote/check_quote_items/string",
              cache: false,
              type: "GET",
              dataType: "json",
              success: function(json){
                    if(json.items != null)
                    {
                        $(json.items).each(function(index, value)
                        {
                            trace(value);
                            $('.checkbox[name="solution_'+value+'"]').attr('checked', true);
                        });
                    }      
              }
          });

    });
}

答案 1 :(得分:0)

我希望复选框是一个应用于复选框元素的类名。你可以试试这个

function checkQuoteItems()
{
    $(document).bind('cbox_complete', function() 
    {
        $.getJSON("/quote/check_quote_items", function(json) {
            $(json.items).each(function(index, value)
            {
                $('.checkbox[name=solution_"'+value+'"]').attr('checked', true);
            });
        });
    });
}