jQuery .change() on Radio Button

匿名 (未验证) 提交于 2019-12-03 03:04:01

问题:

I must be missing something obvious here... I can't get .change() to fire on radio buttons? I have the code below live here!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <title>Radio Button jQuery Change</title>     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>     <script type="text/javascript">         console.log("parsed");         $("input[name='rdio']").change(function() {             console.log("changed");             if ($("input[name='rdio']:checked").val() == 'a')                 $("output").text("a changed");             else if ($("input[name='rdio']:checked").val() == 'b')                 $("output").text("b changed");             else                 $("output").text("c changed");         });     </script> </head> <body>     <div>         <input type="radio" name="rdio" value="a" checked="checked" /> a <br/>         <input type="radio" name="rdio" value="b" /> b <br/>         <input type="radio" name="rdio" value="c" /> c     </div>     <h3>Output:</h3>     <div id="output"></div> </body> </html> 

Can anyone see what I've missed?

Thanks, Denis

回答1:

You must put the code inside the dom-ready event...

 $(document).ready(function(){    // Your code here  }); 

or else the script gets executed before the HTML-elements have been loaded. Thus, no radioboxes exist.



回答2:

Your

$("output").text("a changed"); 

should also be

$("#output").text("a changed"); 

because it is an id you are matching against.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!