2011-06-18 29 views
1

我想要用户jquery添加/删除一对包含背景图像的div类。 div/image意味着作为一对隐藏无线电盒子的收音机箱。更改单选按钮值并添加类与jquery

单击div/image时,脚本应该将'selected'类应用于点击的div并将其从另一个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分] 如果我去了这条路?

$("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); 
    }); 
+0

它是否适合你现在的工作?您已更正您设定要检查的按钮,所以它在我看来应该是。实际上,它不起作用 - 你应该在那里放置attr(“checked”,true)。 – kinakuta

+0

查看jquery文档的设置选中:http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_check.2Funcheck_a_checkbox_input_or_radio_button.3F – kinakuta

+0

它的工作原理,但是当我将它集成到我的网站它仍然没有。 – VikingGoat

回答

1

请勿使用javascript设置属性checked="checked"。相反,使用

radioButton.checked = true

使用jQuery你可以做,

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

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

+0

如果我走这条路线怎么办? (请参阅我的最新编辑3:07 pm) – VikingGoat

+0

实际上,使用javascript设置checked属性不会更新它。您需要设置radio元素的checked属性才能使其工作。 –

0

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

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