在下面的示例頁面中,我爲IE獲得了不同於其他瀏覽器的輸出。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」,用鉻(10.0.648.127)和Firefox(3.6.13)它是 「hidden1hidden2text1text2」。這對我來說是意外的。這是IE或jQuery中的錯誤,還是瀏覽器中jQuery沒有考慮到的預期差異?
IE中的隱藏字段是否總是隱含「禁用」?
你還沒有把'他們name'屬性 - 這可能是值得一試? – 2011-03-11 20:02:14
@Craig:我嘗試給它們添加名字,但結果相同。 – 2011-03-11 22:54:20
您會注意到jQuery UI爲跨瀏覽器兼容性隱藏輸入的方式是將它們用一個名爲ui-helper-hidden-accessible的類剪輯。這是由於你描述的行爲。如果您需要複製它,請查看[基本jQuery UI主題]的頂部佈局助手部分(http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/themes/base/jquery-ui的CSS)。 – lsuarez 2011-03-11 23:00:24