以下示例代码可在 FireFox 中运行,但 IE 会导致问题。
此代码实质上根据 JSON 数组呈现动态复选框列表。
当我尝试提交变量时,复选框的值存储为“on”。我注意到有一个额外的属性被渲染(仅限 IE),称为 jQuery1288631121994,它存储实际值。似乎 jquery 正在尝试管理复选框的状态,但我似乎无法访问存储的值?
这是我的测试示例:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="js/jquery-1.4.3.min.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
var state = {
Professions: [1]
};
$(document).ready(function () {
var data = [{ "ID": 1, "Name": "Football" }, { "ID": 2, "Name": "Cricket" }, { "ID": 3, "Name": "Hockey"}];
$.each(data, function () {
var catid = this['ID'];
var catname = this['Name'];
var selected = $.inArray(catid, state.Professions) != -1 ? true : false;
$("<li></li>")
.append(
$("<input></input>").attr({
id: 'category' + catid
, name: 'categories'
, value: catid
, type: 'checkbox'
, checked: selected
})
.click(function (event) {
//alert($(this)[0].value);
})
)
.append(
$(document.createElement('label')).attr({
'for': 'category-' + catid
})
.text(catname)
)
.append(
$("<div></div>").addClass("clear")
)
.appendTo("#ProfSelector ul");
});
$("#btnTest").click(function () {
alert($("#ProfSelector input:checkbox:checked").val());
});
});
</script>
</head>
<body>
<div id="ProfSelector">
<ul>
</ul>
</div>
<a href="#" id="btnTest">Test</a>
</body>
</html>