Change of Behavior of jQuery Starting with 1.9.0 -


the following code displays alert boxes containing "radio1 selected", "radio2 selected" or "radio3 selected" in response click events on radio buttons when version 1.8.3 of jquery used. versions after displays "none selected". ideas why? thanks

<html> <head> <title></title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script> function radioclicked(){     if ($('#radio1').attr('checked') == 'checked') alert('radio 1 selected');     else if ($('#radio2').attr('checked') == 'checked') alert('radio 2 selected');     else if ($('#radio3').attr('checked') == 'checked') alert('radio 3 selected');     else alert('none selected'); } </script> </head> <body> <label for="radio1">radio 1</label><input type="radio" id="radio1" name="radios" onclick="radioclicked()" /> <label for="radio2">radio 2</label><input type="radio" id="radio2" name="radios" onclick="radioclicked()" /> <label for="radio3">radio 3</label><input type="radio" id="radio3" name="radios" onclick="radioclicked()" /> </body> </html> 

to see if checkbox checked, should using .is(':checked')

function radioclicked(){     if ($('#radio1').is(':checked')) alert('radio 1 selected');     else if ($('#radio2').is(':checked')) alert('radio 2 selected');     else if ($('#radio3').is(':checked')) alert('radio 3 selected');     else alert('none selected'); } 

an easier way check checkboxes starting "radio", be:

function radioclicked(){     $('[id^="radio"]').filter(':checked').each(function(i,ele) {         alert(ele.id + ' checked');     }) } 

and since have same name , belong same group, 1 radio can checked, do:

function radioclicked(){     alert( $('[name=radios]:checked').prop('id') + ' checked'); } 

Comments

Popular posts from this blog

objective c - Can't build GCM with Protobuf in Xcode -

ember.js - EmberJS Model find not up-to-date with underlying store -

javascript - jQuery iScroll clickable list elements while retaining scroll? -