【问题标题】:IE form element (checkbox) problem. Have tried several thingsIE 表单元素(复选框)问题。尝试了几件事
【发布时间】:2011-08-04 22:50:20
【问题描述】:

这是交易。我已经建立了一个营销网站lumber handling products our company sells,它在 Firefox、Chrome 等中运行良好。在 IE(7、8 和 9)中,渲染很好,但我们的报价单存在一个特殊问题。

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

http://screencast.com/t/YPSbWjVe

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

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

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

我做同样的事情,但如果我单击报价请求按钮并激活模式,我会“卡住”第一次在模式中检查的任何内容。我无法更新模态内容,直到我在地址栏中实际输入引用 url 并转到后备页面 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 中没有骰子。谁能指出我调试这个的正确方向?我有点迷茫。

【问题讨论】:

  • 您是否验证了正确的数据在 IE 中返回? (记录您的 getJson 请求中的值)
  • 确保充分利用 IE 的开发工具。在 IE 中按 F12 将它们拉起。您可以设置断点并单步执行 JavaScript,并检查网络流量。使用这些工具,您应该能够更好地了解您的问题。
  • 感谢 cmets,伙计们。我的印象是 console.log 在 IE 中不起作用,但这篇文章 stackoverflow.com/questions/690251/… 另有说明。我会确保检查出来。感谢您的反馈!

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


【解决方案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);
                        });
                    }      
              }
          });

    });
}

【讨论】:

    【解决方案2】:

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

    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);
                });
            });
        });
    }
    

    【讨论】:

    • 感谢您的建议!我会在早上试试这个。
    猜你喜欢
    • 2012-04-25
    • 2014-10-10
    • 2011-02-01
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    相关资源
    最近更新 更多