更改单选按钮值并使用jquery添加类

时间:2011-06-18 18:33:15

标签: jquery css radio-button

我正在尝试使用jquery在一对由背景图像组成的div上添加/删除一个类。 div / image旨在充当一对隐藏无线电盒的无线电盒。

单击div / image时,脚本应将“selected”类应用于单击的div并从另一个中移除(如有必要);并选择适当的隐藏单选按钮。

据我所知,下面的脚本应该有效,但不是,我现在还不确定我做错了什么。任何想法堆叠器?

SCRIPT

$("div#like").click(function() {
    var $radios = $('input:radio[name=vote]');
    $("div#dislike").removeClass("selected");
    $("div#like").addClass("selected");
        $radios.filter('[value=likes]').attr('checked', true);
});

$("div#dislike").click(function() {
    var $radios = $('input:radio[name=vote]');
    $("div#like").removeClass("selected");
    $("div#dislike").addClass("selected");
        $radios.filter('[value=likes]').attr('checked', true);
});

HTML

<form action="createComment.php" method="post">
<div id="like" ><input class="like" type="radio" name="vote" value="likes" /></div>&nbsp;
<div id="dislike" ><input class="dislike" type="radio" name="vote" value="dislikes" /></div><br/>
</form>

[编辑3:07 PM] 如果我走这条路怎么办?

$("div#like").click(function() {
    var $radios = $('input:radio[name=vote]');
        $("div#dislike").removeClass("selected");
        $("div#like").addClass("selected");
        $radios.filter('[value=likes]').attr('checked', true);
        $radios.filter('[value=dislikes]').attr('checked', false);
    });

$("div#dislike").click(function() {
    var $radios = $('input:radio[name=vote]');
        $("div#like").removeClass("selected");
        $("div#dislike").addClass("selected");
        $radios.filter('[value=dislikes]').attr('checked', true);
        $radios.filter('[value=likes]').attr('checked', false);
    });

2 个答案:

答案 0 :(得分:1)

不要使用javascript设置属性checked="checked"。相反,使用

radioButton.checked = true

使用jquery,你可以做到,

$radios.filter('[value=likes]').get(0).checked = true

这是一个很好的小例子,http://jsfiddle.net/cu2y8/6/

答案 1 :(得分:0)

无论点击哪个div,都会在[value = likes]按钮上将checked设置为true。

确保在单击不喜欢div时选择[value = dislikes]按钮。