2011-05-26 70 views
16

检查我将如何实现这一目标:检查,如果输入的使用jQuery

if($(this).parent().find('input:checked') == true) 

{$(this).find('.switch').attr('state','on');} 
else{$(this).find('.switch').attr('state','off');} 

我知道这是错误的,但你的想法,我认为:)。如果有一个被检查的输入,则添加状态,如果没有关闭状态。

+0

你能显示您的标记,此代码一些更多的背景?很难知道所提供的解决方案是否从这一部分准确无误。 – mVChr 2011-05-26 20:27:32

回答

34

尝试用

if($(this).parent().find('input').is(':checked')) { 
    something(); 
} 

这个作品,如果只有一个复选框。

1

尝试这样做:

if ($(this).parent().find('input:checked').length > 0) {  
    $(this).find('.switch').attr('state','on'); 
} else { 
    $(this).find('.switch').attr('state','off'); 
} 

这里假设你有$(this).parent()

6

范围内只有1个输入它不一定是错的,但选择返回适用于该条件的所有元素。因此,你必须检查,如果长度不为0:

if($(this).parent().find('input:checked').length) 
3

这也适用,如果你知道输入HTML元素的ID:

if($('input#element_id_name:checked').length>0) { 
    //your code here. 
} 
3

Supposign input[type=checkbox] = this,您可以检查元素本身。

来源:jQuery docs

$("input[type=checkbox]").change(function(){ 
    if (this.checked){} 
    //or 
    if ($(this).prop("checked")){} 
    //or 
    if ($(this).is(":checked")){} 
}); 
0

如果你知道ID,只需使用:

if ($("#myCheckBox").is(":checked")) { 

}