3

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

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>

谢谢

4

2 回答 2

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/

于 2012-06-15T18:05:59.873 回答
1

如果我明白你在问什么,我会隐藏单选按钮,然后将点击处理程序附加到更改背景颜色的标签上:

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

这是一个要演示的jsfiddle

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

于 2012-06-15T18:28:18.277 回答