Question

Does anyone know why this isn't working. It will always print 'unchecked'.

<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>
Was it helpful?

Solution

You are sending this.id to the function, then you are wrapping it in the $(). This does not work. You need just to send this to msg: onClick="msg(this)".

OTHER TIPS

Use

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

You need a # to tell jQuery that you want to select an id X rather than an element X.

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

Or, if you change onClick="msg(this.id)" to onClick="msg(this)" you can use:

if($(x).attr('checked'))
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top