1

在我的应用程序中,用户可以选中或取消选中复选框。在更改事件上:

    $('#Inactive_cb').change(function () {

    ....
    this.checked = !this.checked;

我检查该值是否已更改。在 change() 中,我还检查他们是否有权进行更改。如果他们不喜欢撤消,请选中/取消选中。

问题:

我的方式是否高于理想?我有:

     this.checked = !this.checked;
4

2 回答 2

1

您可以使用

if($(this).is(':checked')){
    $(this).attr('checked', false);
}

或者,如果您有更新版本的 jQuery,您可以使用

if($(this).is(':checked')){
    $(this).prop('checked', false);
}
于 2012-07-12T22:12:09.210 回答
0

你可以这样做,它很简单而且有效......但如果用户没有检查它的权限,我建议只禁用该复选框。

<input type="checkbox" id="foo" disabled />

设置禁用属性的jQuery代码

$("#foo").attr('disabled', 'disabled');

您会在表单加载时执行此操作,因此没有权限的用户甚至无法检查它。显然,您希望在服务器端再次进行此检查,以确保没有人从 DOM 中的元素中删除该属性并在不应该进行检查时对其进行检查。

还不如添加...如果您需要使用 JS 删除属性,请使用 jQuery 的.removeAttr()

于 2012-07-12T22:10:04.467 回答