2010-11-15 113 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'); 
}