2010-11-15 115 views
0

有谁知道为什么这不起作用。它将始终打印“未选中”。检查复选框是否被选中jquery

<html> 
<head> 
<script type="text/javascript" src="jquery.js"></script> 

<script type="text/javascript"> 

function msg(x) 
{ 

if($(x).attr('checked')){ 
    alert('checked!!'); 
} 
else{ 
    alert('unchecked'); 
} 

} 

</script> 


</head> 
<body> 

<form> 
<input type="checkbox" id="fname2" onClick="msg(this.id)" /><br/> 

</form> 

</body> 
</html> 

回答

6

您发送this.id的功能,那么你在$()加以包装。这不起作用。您只需发送this至msg:onClick="msg(this)"

+1

如果你想发送的ID味精,你需要做的:'$( '#' + X)'。 – 2010-11-15 05:12:58

1

你需要一个#告诉jQuery的,你要选择一个ID X而非元素X

if($('#'+x).attr('checked')) 

或者,如果你改变onClick="msg(this.id)"onClick="msg(this)"你可以使用:

if($(x).attr('checked')) 
2

使用

function chkChecked(elmt) { 
    if($(elmt).is(':checked')) { 
     alert('checked!!'); 
    } 
    else alert('unchecked'); 
}