消失的单选按钮和可点击的标签

时间:2012-06-15 18:00:21

标签: javascript jquery html

我想让单选按钮消失而不是按钮,单选按钮的标签本身可以点击,我将更改所选收音机的背景颜色。我怎样才能做到这一点?例如,我有“是”和“否”标签,这些标签可以点击,根本就没有单选按钮。这些仅改变背景颜色,但显示不需要的单选按钮。

的Javascript

$(document).ready(function(){
    var ok = "green";
    var notok = "red";

    $.each($(":radio"), function(){

        if($(this).prop("checked") == false)
        {
            $(this).parent().css("background", notok);
        }
        else
        {
            $(this).parent().css("background", ok );
        }
    })

    $(":radio").click(function(){
        $("[name='"+$(this).prop("name")+"']").parent().css("background", notok);
        $(this).parent().css("background", ok );

    })
})

HTML

<FORM name="form1">
 <div>
        <input type="radio" id="yes" name="q"checked="checked"/> Yes
        </div>
        <div>
        <input type="radio" id="no" name="q"/>No
        </div>


</FORM>

由于

2 个答案:

答案 0 :(得分:2)

这个实际上看起来很容易。如果您只使用“标签”标签,它将是可点击的。然后你可以简单地隐藏单选按钮。

<input id="yes" type="radio" name="q" value="radiobutton" style="display:none;" />
<label for="yes">Yes </label>

<input id="no" type="radio" name="q" value="radiobutton" style="display:none;" />
<label for="no">No</label>

顺便说一下,这是一个工作的JSFiddle:http://jsfiddle.net/scGE9/2/

答案 1 :(得分:1)

如果我理解你的要求,我会隐藏单选按钮,然后将单击处理程序附加到更改背景颜色的标签上:

$('label').click(function () {
   $('label').removeClass('selected');
   $(this).addClass('selected');
}); 

这是一个jsfiddle来演示。

简而言之,当单击标签时,从所有相关标签中删除控制背景颜色的“选定”类,并将其应用于所单击的标签。