【问题标题】:hidden fields in IE are considered disabled?IE中的隐藏字段被视为禁用?
【发布时间】:2011-07-13 18:11:33
【问题描述】:

通过下面的示例页面,我得到的 IE 输出与其他浏览器不同。

<html>
<head>
    <title>hidden fields test</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
</head>
<body>
    <form>
        <input type="hidden" value="hidden1" />
        <input type="hidden" value="hidden2" />
        <input type="text" value="text1" />
        <input type="text" value="text2" />
    </form>
    <script type="text/javascript">
        $(function() {
            var inputs = $("form input:enabled");
            var concatenated = '';
            inputs.each(function() {
                concatenated = concatenated + $(this).val();
            });

            alert(concatenated);
        });
    </script>
</body>
</html>

对于 IE 8 (8.0.7600.16385),输出是“text1text2”,对于 Chrome (10.0.648.127) 和 Firefox (3.6.13),它是“hidden1hidden2text1text2”。这出乎我的意料。这是 IE 或 jQuery 中的错误,还是 jQuery 未考虑的浏览器中的预期差异?

IE中的隐藏字段是否总是带有隐含的“禁用”?

【问题讨论】:

  • 你还没有给它们添加name 属性——这可能值得一试?
  • @Craig :我尝试为它们添加名称,但结果相同。
  • 您会注意到 jQuery UI 隐藏输入以实现跨浏览器兼容性的方式是使用名为 ui-helper-hidden-accessible 的类来剪辑它们。这是由于您描述的行为。如果您需要复制它,请查看 base jQuery UI theme 的顶部布局助手部分。

标签: jquery internet-explorer cross-browser hidden-field


【解决方案1】:

改变这一行:

var inputs = $("form input:enabled");

到:

var inputs = $("form input:not(:disabled)");

【讨论】:

  • 他不是在尝试仅启用控件吗?也许还有另一种方法。
  • 感谢您,使用 ":not(:disabled)" 确实可以保证跨浏览器的一致性。但根据杰里米的回答,这似乎是幸运的,基于 IE 似乎如何看待隐藏字段。我会很好奇 IE9 是做什么的。
【解决方案2】:

似乎 FF 和 Chrome 假设即使一个元素被隐藏,如果它没有被禁用,它也被认为是启用的。在 IE 中,似乎没有做出假设,并且隐藏的输入既不被视为启用也不被禁用。 $('input:enabled') 或 $('input:disabled') 都不会在 IE 中使用隐藏元素运行:

这里的简单测试:http://jsfiddle.net/KFu4t/4/

FF 和 Chrome 都将输入显示为已启用,但 IE 未显示已启用或禁用。

在 :enabled 的 jQuery cmets 上注明:

文档中没有具体说明,但这似乎不包括“隐藏”类型的输入。

http://api.jquery.com/enabled-selector/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-21
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多