开发者

jQuery .change() not firing

Just working on some small pages to be elements of a much larger project and am completely confused at my current problem here is my code:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<STYLE TYPE="text/css">
  .questionBlock { font-size: x-large; color: red }
</STYLE>

<script type="text/javascript">
$(document).ready(function() { 
alert("sdsd")
$("input[@name='questionType']").change(function(){
    alert("dfdfdf");
    var selected = $("form input:radio:checked").val();
    alert(selected);
})
});

</script>

<form action="">
<input type="radio" name="questionType" value="closed" /> Closed Endeded<br />
<input type="radio" name="questionType" value="matrix" /> Matrix Question<br />
<input type="radio" name="questionType" value="open" /> Open Ended
</form>

<div class="questionBlock" id="closed">lol</div>
<div class="questionBlock" id="open">rol</div>
<div class="questionBlock" id="matrix">开发者_如何学Pythonbol</div>

But the change event never fires, regardless of browser, I've tried using bind as well but it's driving me up the wall!


jQuery attribute selectors don't need @ prefix (like XPath). Change your code like this:

$("input[name='questionType']").change(function(){

Here is a working version.


you need to remove the @ fiddle

$(document).ready(function() { 

    $('input[name="questionType"]').change(function(){
        alert("dfdfdf");
        var selected = $("form input:radio:checked").val();
        alert(selected);
    })
    });


jQuery does not use "@" in Xpath-style attr selectors anymore. This being the case, your selector does not match anything.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜