0

我需要编写一个函数来“取消选中”组中的旧“选中”框。基本上,是A组和B组,一旦检查并提交了A组的项目,它显示了A组的项目以及与B组相同的内容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

});
});​
4

2 回答 2

2

只需添加以下行

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

$('.selectOne').change()

当列表选择更改时,这将取消选中所有复选框。

演示

于 2012-07-03T15:15:17.723 回答
0

我不确定你是否还在寻找答案,但你可以在这个演示中看到

我只是将每个复选框与其单击事件连接起来,这样您就可以删除其他组的选中复选框,这样他们就可以选择任何组,而不必担心复选框被取消选中

于 2012-07-03T15:50:25.123 回答