使用jquery取消选中已选中的复选框

时间:2012-07-03 15:02:47

标签: jquery

我需要编写一个函数来“取消选中”组中的旧“已选中”框。基本上,是A组和B组,一旦检查并提交了A组中的项目,它就会显示A组中的项目和B组中的相同内容。但问题是当选择并显示A组中的项目并且您执行来自B组的同样的事情。组A的项目仍然显示出来。在jQuery中是否有任何内置函数可以解决问题。代码设置为http://jsfiddle.net/rexonms/mJgcK/

HTML

<h1>Find Services You Need</h1>
<select class="selectOne">
<option>Please Select One</option>
<option name="one">Basic Needs</option>
<option name="two">Disabilities Services for Adults</option>

</select><!--selectOne-->



<div class="options">
<div class="option one">
    <h3>Basic Needs</h3>
    <input type="checkbox" name="oneA">Employment services<br>
    <input type="checkbox" name="oneB">Financial assistance<br>
    <input type="checkbox" name="oneC">Food<br>
    <input type="checkbox" name="oneD">Housing<br>
    <input type="checkbox" name="oneE">Legal issues<br>
</div><!--optionOne-->

<div class="option two">
    <h3>Disabilities Services for Adults </h3>
    <input type="checkbox" name="twoA">Advocacy<br>
    <input type="checkbox" name="twoB">Coordinated Care<br>
    <input type="checkbox" name="twoC">Employment Support<br>
    <input type="checkbox" name="twoD">Housing<br>
    <input type="checkbox" name="twoE">Recreation & Social Activities<br>
    <input type="checkbox" name="twoF">Referrals & Financial Options<br>
    <input type="checkbox" name="twoG">Services for the Deaf and Hard of Hearing<br>
</div><!--optionOne-->


</div><!--options-->

<div id="showMeContainer"><div id="showMe">Show Me</div>

</div><!--button-->


<div class="answers">
<div class="answerTitle"><h3>Title Here</h3></div><!--answerTitle-->

<div class="one">

    <div class="oneA answer">
        <p>Employment services</p>
    </div><!--oneA-->
    <div class="oneB answer" >
        <p>Financial assistance</p>
    </div><!--oneB-->
    <div class="oneC answer">
        <p>Food</p>        
    </div><!--oneC-->
    <div class="oneD answer">
        <p>Housing</p>
    </div><!--oneD-->
    <div class="oneE answer">
        <p>Legal Issues</p>
    </div><!--oneE-->
</div><!--answer-->

<div class="two">
    <div class="twoA answer">
        <p>Advocacy</p>
    </div><!--oneA-->
    <div class="twoB answer" >
        <p>Cordinated Care</p>
    </div><!--oneB-->
    <div class="twoC answer">
        <p>Employment Support</p>        
    </div><!--oneC-->
    <div class="twoD answer">
        <p>Housing</p>
    </div><!--oneD-->
    <div class="twoE answer">
        <p>Recreation & Social Activities</p>
    </div><!--oneE-->
    <div class="twoF answer">
        <p>Referrals & Financial Options</p>
    </div><!--oneF-->
    <div class="twoG answer">
        <p>Services for the Deaf and Hard of Hearing</p>
    </div><!--oneF-->
</div><!--two-->


</div><!--answers-->​

jQuery 1.2.6(我没有使用更新版本的权限)

$(document).ready(function(){

$('.option').hide();//Hiding all options
$('.answer').hide(); //Hiding all the answers   
$('#showMeContainer').hide(); //Hiding the show me button
$('.answerTitle').hide();


$('.selectOne').change(function(event){


    var name = $('.selectOne option:selected').attr('name');
    //alert(name);
    $('#showMeContainer').hide(); 
    $('.option').hide();
    $('.' + name).show();
    $('#showMeContainer').show(); 


});

$('#showMe').click(function(event) {  
    $('.answer').hide();
    $('.answerTitle').hide();
    var checked = $('.option').find(':checked');
    $.each(checked, function() {
        var name = this.name;
        $('.' + name).show();
         $('.answerTitle').show();

    });

    var x = $('#compBody').height() + 50;// Getting the height on the div
    $('#pageBody').css('height',x); // updating the height of the outer div

});
});​

2 个答案:

答案 0 :(得分:2)

只需添加以下行

即可
$(".options [type=checkbox]").attr('checked', false);

$('.selectOne').change()

当列表选择发生变化时,将取消选中所有复选框。

DEMO

答案 1 :(得分:0)

我不确定你是否还在寻找答案,但你可以在demo

中看到它

我只是将每个复选框与其点击事件相关联,这样您就可以删除其他组的所选复选框,以便他们可以选择任何组,而无需担心取消选中复选框