2011-11-20 75 views
0

我有兩個複選框。每個人都有一個子窗體,當複選框未被標記時被禁用。我想標記每個複選框的子窗體啓用。切換標記複選框的事件

我試試這個代碼,但這個工程即使複選框未被選中:

$("#form1").click(function(){ 
    if(":checked",this) { ..... } 

}); 

$("#form2").click(function(){ 
    if(":checked",this) { ..... } 

}); 

你會幫我嗎?

回答

3

您可以使用jQuery的is方法:

if($(this).is(":checked")) { 
    //It's checked! 
} 

什麼你現在將始終爲true,因爲this一直在不斷地truthy(不undefinednull爲例)。

請注意,您需要將this傳遞給jQuery,因爲它將引用點擊的DOM元素本身,而不是jQuery包裝的元素。

2

是#form1和#form2複選框?那麼你可以做:

$("#form1").change(function(){ 
    if(this.checked) { 
    ..... 
    } 

}); 

$("#form2").change(function(){ 
    if(this.checked) { 
    ... 
    } 
}); 

http://jsfiddle.net/9pgmN/1/各種冗餘的對象建立和選擇過濾後(只是一個演示)

jQuery的":checked"歸結爲

checked: function(elem) { 
    return elem.checked === true; 
}