单击父容器选中复选框?

时间:2013-08-07 20:11:19

标签: jquery

不必点击小的特定复选框区域,我想通过单击父容器来检查复选框,这里有一个示例fiddle。而不是添加红色,ID就像检查li中的框一样。

我试着寻找这个答案,但找不到我想要的东西,这应该很简单,对某些人来说可能很有趣。

HTML:

<li class="option table selected">
<div class="cell" id="left">
    <div class="fontawesome-menu"></div>
</div>
<div class="cell" id="center">
    <div class="option-text">I like green eggs</div>
</div>
<div class="cell" id="right">
    <div class="option-checkbox">
        <div class="check"></div>
        <input name="personalization_result[memory_0]" type="hidden" value="0">
        <input id="personalization_result_memory_0" name="personalization_result[memory_0]" type="checkbox" value="1">
    </div>
</div>
</li>

jQuery:

$('li').click(function () {
    $(this).addClass('seuss');
});

请查看fiddle以更好地了解我的问题。

4 个答案:

答案 0 :(得分:2)

你可以这样做:

Original无需更改为<label> s:

$('li').click(function(){
    var el = $(this).toggleClass('seuss');
    el.find('input[type=checkbox]').prop('checked', el.hasClass('seuess'));
});

Updated using <label>s

HTML:

<li class="option table selected">
    <label for="personalization_result_memory_0">
        <div class="cell" id="left">
            <div class="fontawesome-menu"></div>
        </div>
        <div class="cell" id="center">
            <div class="option-text">I like green eggs</div>
        </div>
        <div class="cell" id="right">
            <div class="option-checkbox">
                <div class="check"></div>
                <input name="personalization_result[memory_0]" type="hidden" value="0">
                <input id="personalization_result_memory_0" name="personalization_result[memory_0]" type="checkbox" value="1">
            </div>
        </div>
    </label>
</li>

使用Javascript:

$('input[type=checkbox]').change(function(){
    var el = $(this).closest('li').toggleClass('seuss');
});

请注意,即使您将输入包装在<label>中,也应使用for属性。

答案 1 :(得分:1)

您可以使用<label>代码

http://www.w3schools.com/tags/tag_label.asp

答案 2 :(得分:0)

http://jsfiddle.net/CVjCr/1/

添加了$(this).find('input').prop('checked', true);

答案 3 :(得分:0)

使用“for”和“id”来实现这个功能很容易。 这是示例。

<div>
<input type="checkbox" id="contractConsent" />
<label for="contractConsent">By checking this box, I agree to the terms and conditions. </label>
</div>