0

我有多个复选框的功能..如果我们检查多个孩子需要检查,反之亦然。但是它只发生在第三次点击时。如果我们单击 allcheck,则所有子项都被选中,反之亦然。但是我需要的功能是,即使一个孩子也被选中,如果我们单击 allcheck,剩余的需要被选中..如果我们取消选中一个孩子,allcheck 也需要被取消选中.我用这个代码

html:

<li class="inputradio"><input name="allCheck" type="checkbox" ></li>

<li id="childcheckbox"><input name="childCheck" type="checkbox"></li>

所有检查

<div id="actions"><div id="box">
<ul><li class="inputradio"><input name="allCheck" type="checkbox" ></li>
<li class="multiple"><a href="#" class="bt btleft">Multiple</a></li>
 <!--<li class="deletebutton"><a href="#" class="bt btleft">Delete</a></li>
<li class="copy"><a href="#" class="bt btright">Copy</a></li>-->
 <li class="shatebutton"><a href="#" class="bt stmiddle">Share</a>
<div id="smenu">

</div>

孩子:

 <div id="rightoutputimgae">
<div id="rightimgId" class="rightimg"  rel="tooltip" 
content="<img src='jqe13/image/1.jpg' class='tooltip-image'/> ">
 <div id="outputimageId" class="outputimage">
<img src="jqe13/image/1.jpg" alt="Right Bottom Image"></div>
</div>
<ul><li id="childcheckbox"><input name="childCheck" type="checkbox"></li>
<li id="outedit"><a href="#"><img src="jqe13/image/edit_s.PNG" alt="edit" title="Edit">
 </a></li>
<li id="outdelete">
<a href="#" onclick="deleteImg()">
 <img src="jqe13/image/delet_c.PNG" alt="delete" title="Delete"></a></li>
  <li id="outfullscreen">
   <a href="#"><img src="jqe13/image/fullscreen_c.PNG" alt="Full Screen" 
class="fullscreen" title="Full Screen"></a></li>

jQuery:

 $('.inputradio').click(function () {
    $('input[name=allCheck]').click(function () {
        $("input[name='childCheck']").prop('checked', this.checked);
    });

    $("input[name='childCheck']").click(function () {
        if ($('input[name=childCheck]:checked').length === $('input[name=childCheck]').length) $('input[name=allCheck]').prop("checked", true);
        else $('input[name=allCheck]').prop("checked", false);
    });
}); 

谁能告诉我这有什么问题

4

3 回答 3

1
$('input[name=allCheck]').click(function () {
    $("input[name='childCheck']").prop('checked', this.checked);
});

$("input[name='childCheck']").click(function () {
    if ($('input[name=childCheck]:checked').length === $('input[name=childCheck]').length) $('input[name=allCheck]').prop("checked", true);
    else $('input[name=allCheck]').prop("checked", false);
});

尝试这个

于 2013-05-17T11:43:10.047 回答
0

尝试这个

$('.inputradio').click(function () {

  if ($('.inputradio input').is(':checked')) {
    //do something
  }
  if($('#childcheckbox input').is(':checked')) {
    //do smoething else
  }
}); 
于 2013-05-17T11:49:17.240 回答
0

它应该是

var allchk = $('input[name="allCheck"]').click(function(){
    chks.prop('checked', this.checked);
})

var chks = $("input[name='childCheck']").click(function () {
    allchk.prop("checked", chks.filter(':checked').length === chks.length);
});
于 2013-05-17T11:43:22.453 回答