【发布时间】:2014-06-04 17:12:19
【问题描述】:
@using (Html.BeginForm(null, null, FormMethod.Post, new { Id = "form" }))
{
@Html.DropDownList("Roles",newSelectList((IEnumerable<EmployeeManagementSystem.DAO.RoleMaster>)ViewData["Roles"], "RoleId", "RoleName"), "Select Role", new { @id = "ddlRole" })
<table id="sample_editable_1">
<tbody>
@{
var i = 0;
foreach (var item in Model)
{
<tr>
<td style="display: none">@Html.HiddenFor(modelItem => item.privilegeId, new { @id = "hdnPrivilegeId" + i })
</td>
<td>@Html.CheckBox("CheckBox",false, new { @id = "chkRolePrivilege" + i ,@name="PrivilegeCheckBox"})
</td>
<td>@Html.LabelFor(modelITem => item.privilegeName, item.privilegeName, new { @id = "privilegeName" + i, Value = item.privilegeName })
</td>
</tr>
i++;
}
}
</tbody>
</table>
}
我需要根据角色的权限检查复选框。但是在使用 jquery 的下拉更改事件中未选中/取消选中复选框。但是可以在$(document).ready(function() 中选中复选框,但是当我们在更改事件或某些内容中执行此操作时,它的选中属性不起作用并且所有其他属性(例如禁用等)都可以正常工作。
$("#ddlRole").change(function () {
var roleId = 0;
var privilegeListName = "";
var row = $(this).parent().parent();
roleId = $('#ddlRole :selected').val();
$.ajax({
url: "/api/Privilege/GetPrivilegesByRoleId?RoleId=" + roleId,
type: 'Get',
contentType: 'application/json; charset=utf-8',
success: function (data) {
for (var i = 0; i < 4; i++) {
for (var j = 0; j < 4; j++) {
if ($('#sample_editable_1 tr #privilegeName' + i).text() == data[j].privilegeName.trim()) {
$('#chkRolePrivilege' + i).attr('checked', true);
alert("true");
}
else {
alert("false");
}
}
}
}
});
});
【问题讨论】:
-
我已经编辑了这个问题......因为我没有得到那个 $('#chkRolePrivilege' + i).attr('checked', true);选中/未选中
-
您是否看到警报(真或假)?
-
所有工作都按我的意愿工作,除了选中的复选框属性...我也看到了 alert(true)
-
复选框的所有其他属性都在工作。如果我们禁用复选框,它就完成了,但选中的属性没有选中或取消选中
标签: jquery asp.net-mvc checkbox