当我点击具有此复选框的元素跨度时,如何设置项目复选框?

时间:2012-10-12 00:11:11

标签: jquery checkbox

当我点击具有此复选框的元素范围时,我需要设置项目复选框。

代码:

<script>
$('.CheckMemberClassList').bind('click',function(){
    $('.CheckMemberClassList').removeClass('MemberClassActive').addClass('MemberClassInactive');
    $(this).removeClass('MemberClassInactive').addClass('MemberClassActive');
    });
</script>


<span class="MemberClass1 MemberClassActive CheckMemberClassList">
<input type="radio" name="MemberClassList" id="MemberClassList1" value="1" checked="checked">
Text One
</span>

<span class="MemberClass2 MemberClassInactive CheckMemberClassList">
<input type="radio" name="MemberClassList" id="MemberClassList2" value="2">
Text Two
</span>

<span class="MemberClass3 MemberClassInactive CheckMemberClassList">
<input type="radio" name="MemberClassList" id="MemberClassList3" value="3">
Text Tree
</span>

请告诉我,我需要如何在此代码中制作它?

3 个答案:

答案 0 :(得分:8)

<span>更改为<label>,其for=属性与您的输入ID相匹配,如下所示:

<label for="checkbox1">Click Me!</label>
<input type="checkbox" id="checkbox1">

http://jsfiddle.net/2GbPS/

实际上,由于您在范围内有复选框,因此可以使用:

<label>
<input type="checkbox">
Click Me!
</label>

(小提琴更新)

也适用于收音机!

<label>
<input type="radio">
Click Me!
</label>

答案 1 :(得分:2)

$('.CheckMemberClassList').bind('click',function(){
    $('.CheckMemberClassList').removeClass('MemberClassActive').addClass('MemberClassInactive');
    $(this).removeClass('MemberClassInactive').addClass('MemberClassActive');
    $(this).find('input:radio').prop('checked', true);
});

工作示例:http://jsfiddle.net/hMYtg/

Jquery .prop()文档:http://api.jquery.com/prop/

答案 2 :(得分:0)

首先,你想要一个复选框或无线电输入吗?您的代码是无线电输入。

这是显示您需要的jsfiddle

您需要以下javascript:

$('span').click(
    function() {
        var cb = $(this).find(":radio")[0];

        if (!$(cb).attr("checked")) {
            $(cb).attr("checked", "checked");
        } else {
            $(cb).removeAttr("checked");
        }
    }
);

$('span input').click(
    function(event){
        event.stopPropagation();
});​