当使用 JQuery 动态创建复选框数组并附加到 DOM 元素时,IE 8 不会将复选框数组作为表单的一部分提交。它与 Firefox 和 Chrome 完美配合。我在服务器端使用 MVC 3 框架。有什么想法可以解决这个问题以使其与 IE 8 一起使用?我绝对会感谢任何建议。
模型:
public int[] SelectedTemplateRequirements { get; set; }
看法:
HTML:
<label for="requirementsTemplateDetail">Requirements:</label><br />
<div id="requirementsTemplateDetail"></div>
查询:
<script type="text/javascript">
/* Fills up the textarea */
function fillTextArea(ctrlName, list) {
// clear div
$('#requirementsTemplateDetail').empty();
$.each( list, function (index, itemData) {
// alert(itemData.Id );
$(ctrlName).append(
$(document.createElement('input')).attr({
name: 'SelectedTemplateRequirements',
value: itemData.Id,
type: 'checkbox',
checked: 'checked'
})
).append(itemData.Name + '<br/><br/>');
})
}
function fillRequirementsDropdown(response) {
fillTextArea("#requirementsTemplateDetail", response.Reqs);
}
function postFormRequirementsByTemplateID(ctrlName) {
var theForm = $(ctrlName).parents('form');
$.ajax({
type: "POST",
url: '@Url.Action("GetRequirementsByTemplateID")',
data: theForm.serialize(),
error: function (xhr, status, err) {
alert("An error occurred while saving\n\n" + err);
},
success: function (response) {
fillRequirementsDropdown(response);
}
});
return false;
}
function auditType_SelectionChanged() {
postFormRequirementsByTemplateID("#AuditTemplateId");
}
$(document).ready(function () {
$("#ClassTypeId").change(function () {
ClassType_SelectionChanged();
});
$("#AuditTemplateId").change(function () {
auditType_SelectionChanged();
});
$('#templateSearchID').click(function () {
auditTemplateButtonPressed();
});
$('#templateAllID').click(function () {
auditTemplateAllPressed();
});
});
</script>
控制器:
public class AuditController : ComplianceController
{
[HttpPost]
public ActionResult Create(string submit, AuditDocument document )
{
// Inserts into AuditRequirementDetail table
m_activeContract.insertAuditTemplateRequirements(document, myuser);
}
}
发生的情况是 IE 8 无法捆绑SelectedTemplateRequirements
数组,因为它显示为NULL
当它返回到控制器上的 post 操作方法时。由于 IE 8 仍然拥有庞大的用户群,因此非常感谢您对此提出任何建议。