用隐藏检查所有复选框

问题描述:

如何添加一个复选框,以检查所有复选框是否已选中?用隐藏检查所有复选框

如何将显示/隐藏功能添加到“全选”复选框。 如果勾选全部复选框,则还需要显示提交按钮。选择所有chckbox的

$(document).ready(function() { 

var $submit = $("#submit_prog").hide(), 
    $cbs = $('input[name="prog"]').click(function() { 
     $submit.toggle($cbs.is(":checked")); 
    }); 

}); 

<input type="checkbox" name="?" value="?"> // check all checkbox 

<input type="checkbox" name="prog" value="1"> 
<input type="checkbox" name="prog" value="2"> 

<input type="submit" id="submit_prog" value='Submit' /> 
+0

你试过吗?:[http://*.com/a/7720869/1207958](http://*.com/a/7720869/1207958) – svante 2013-04-27 07:24:44

  1. 假设id为selall。
  2. 创建一个类的所有复选框你想使用select选择所有
$('#selall').click(function(event) { 
    if(this.checked) { 
     // Iterate each checkbox 
     $('.yourchckbox').each(function() { 
      this.checked = true;       
     }); 
     $('#submit_prog').show(); 
    } 
    else { 
    $('.yourchckbox').each(function() 
    { this.checked = false; }); 
    $('#submit_prog').hide() 
    } 
}); 
    $('.yourchckbox').click(function(event) { 
    if(!(this.checked)) { 
    $('#selall').prop('checked', false); 
    } 

    }); 
+0

提交按钮怎么样?当我检查所有复选框时,它仍然隐藏。 – 2013-04-27 07:54:41

+0

编辑我的答案。在阅读问题时遗憾地错过了提交部分。 – 2013-04-27 08:00:12

+0

现在,它的工作。你可以请广告的功能,如果我至少取消选中其中一个复选框值检查所有复选框将被取消选中。谢谢。 – 2013-04-27 08:04:15

尝试

$('input:checkbox[name!="prog"]').click(function(){ 
    $('input:checkbox[name="prog"]').prop('checked', $(this).is(':checked')) 
}) 

或者,如果你可以改变复选框id来selall

$('#selall').click(function(){ 
    $('input:checkbox').prop('checked', $(this).is(':checked')) 
}) 
+0

提交按钮仍然隐藏 – 2013-04-27 07:51:14

它很简单。

让名此复选框<input type="checkbox" name="check_all" value="1">

现在添加事件:

$('input[name="check_all"]').click(function() { 
    if($(this).is(':checked')) { 
     $('input[name="prog"]').attr('checked', 'checked'); 
    } else { 
     $('input[name="prog"]').removeAttr('checked'); 
    } 

    $('input[name="prog"]:eq(0)').change(); //firing event which we will catch 
}); 

那么我们应该检查是否所有input[name="prog"]检查:

$('input[name="prog"]').change(function() { 
    if($('input[name="prog"]:not(:checked)').length) { 
     $('#submit_prog').hide(); 
    } else { 
     $('#submit_prog').show(); 
    } 
}); 
+0

使用属性而不是属性来操作复选框状态 – Musa 2013-04-27 07:55:50

选择上#all检查,并检查所有复选框当所有复选框被选中时#all

<SCRIPT language="javascript"> 
    $(function(){ 

     $("#all").click(function() { 
       $('.one').attr('checked', this.checked); 
    if (this.checked) {$('#submit_prog').hide();} 
(this.checked)?$('#submit_prog').show():$('#submit_prog').hide(); 
     }); 

     $(".one").click(function(){ 

      if($(".one").length == $(".one:checked").length) { 
       $("#all").attr("checked", "checked"); 
       $('#submit_prog').show(); 
      } else { 
       $("#all").removeAttr("checked"); 
$('#submit_prog').hide(); 
      } 

     }); 
    }); 
    </SCRIPT> 

更改ID和类复选框

<input type="checkbox" id="all" > // check all checkbox 

<input type="checkbox" name="prog" class="one" value="1"> 
<input type="checkbox" name="prog" class="one" value="2"> 
+1

检查全部只工作一次,并且提交按钮仍然隐藏。 – 2013-04-27 07:42:01

+0

使用属性而不是属性来操纵复选框状态 – Musa 2013-04-27 07:55:33

+0

请参阅编辑的代码,对我来说工作完全正常 – 2013-04-27 07:55:47

给选择所有复选框的ID,说selectall然后

$('#selectall').click(function(){ 
    if (this.checked){ 
     $('input[name="prog"]').prop('checked', true); 
     $submit.toggle(true); 
    } 
}); 

,如果你想复选框是未选中的,如果全部选择未选中

$('#selectall').click(function(){ 
    $('input[name="prog"]').prop('checked', this.checked); 
    $submit.toggle(this.checked); 
}); 
$cbs = $('input[name="prog"]').click(function() { 
    $submit.toggle($cbs.filter(':checked').length == 0); 
    if (!this.checked) $('#selectall').prop('checked', false); 
}); 
+0

但是,您也可以手动点击'name =“prog”',然后'$ submit'可见性将会出错。 – Kasyx 2013-04-27 07:36:41

+0

@Kasyx怎么这样? – Musa 2013-04-27 07:39:04

+0

所以有一个选项,没有复选框将被“:checked”,你会看到'$ submit'。这是一个错误。 – Kasyx 2013-04-27 07:41:05