【发布时间】: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