2012-07-12 42 views
1

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

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

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

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

问题:

是我把它放在理想的位置吗?我有:

 this.checked = !this.checked; 
+1

也许复制http://stackoverflow.com/questions/1164213/how-to-stop-event-bubbling-on-checkbox-click – GTSouza 2012-07-12 21:29:20

+0

@GTSouza没有重复的,这个问题涉及的事件Ť在与孩子进行互动时对父母元素进行操纵。 – sachleen 2012-07-12 22:08:03

回答

2

您可以使用

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

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

if($(this).is(':checked')){ 
    $(this).prop('checked', false); 
} 
+0

没有看到有人来... ... :) – Sabo 2016-02-25 14:08:07

0

你可以这样做的,它的简单和它的作品...但我建议只禁用复选框,如果用户没有权限去检查一下。

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

jQuery代码来设置disabled属性

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

你应该这样做,当窗体加载,使没有权限的用户甚至不用检查它的能力。显然,你想在服务器端重新进行检查,以确保没有人从DOM中的元素中移除该属性,并在不应该检查它时检查它。

还不如加...如果你需要使用JS要移除的属性,使用jQuery的.removeAttr()