简体   繁体   English

单选按钮上的jQuery .change()

[英]jQuery .change() on Radio Button

I must be missing something obvious here... I can't get .change() to fire on radio buttons? 我必须在这里遗漏一些明显的东西......我无法通过单选按钮获取.change() 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 谢谢,丹尼斯

You must put the code inside the dom-ready event... 您必须将代码放在dom-ready事件中...

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

or else the script gets executed before the HTML-elements have been loaded. 或者在加载HTML元素之前执行脚本。 Thus, no radioboxes exist. 因此,不存在放射线管。

Your 您的

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

should also be 也应该是

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

because it is an id you are matching against. 因为它是你匹配的id。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM