2012-07-12 40 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()