Seleccione todas las casillas de verificación con jQuery

Necesito ayuda con los selectores de jQuery. Digamos que tengo un marcado como se muestra a continuación:

¿Cómo obtener todas las casillas de verificación excepto #select_all cuando el usuario hace clic en él?
Cualquier ayuda será apreciada.

Un ejemplo más completo que debería funcionar en su caso:

 $('#select_all').change(function() { var checkboxes = $(this).closest('form').find(':checkbox'); checkboxes.prop('checked', $(this).is(':checked')); }); 

Cuando se hace clic en la checkbox #select_all se #select_all el estado de la checkbox y todas las casillas de verificación en el formulario actual se establecen en el mismo estado.

Tenga en cuenta que no necesita excluir la checkbox #select_all de la selección, ya que tendrá el mismo estado que todos los demás. Si por alguna razón necesita excluir #select_all , puede usar esto:

 var checkboxes = $(this).closest('form').find(':checkbox').not($(this)); 

simple y limpio

 $('#select_all').click(function() { var c = this.checked; $(':checkbox').prop('checked',c); }); 

La respuesta superior no funcionará en Jquery 1.9+ debido al método attr (). Use prop () en su lugar:

 $(function() { $('#select_all').change(function(){ var checkboxes = $(this).closest('form').find(':checkbox'); if($(this).prop('checked')) { checkboxes.prop('checked', true); } else { checkboxes.prop('checked', false); } }); }); 
 $("form input[type='checkbox']").attr( "checked" , true ); 

o puedes usar el

: selector de checkbox

 $("form input:checkbox").attr( "checked" , true ); 

He reescrito tu HTML y proporcioné un controlador de clics para la checkbox principal

 $(function(){ $("#select_all").click( function() { $("#frm1 input[type='checkbox'].child").attr( "checked", $(this).attr("checked" ) ); }); }); 
  $(function() { $('#select_all').click(function() { var checkboxes = $(this).closest('form').find(':checkbox'); if($(this).is(':checked')) { checkboxes.attr('checked', 'checked'); } else { checkboxes.removeAttr('checked'); } }); }); 
  $(document).ready(function(){ $("#select_all").click(function(){ var checked_status = this.checked; $("input[name='select[]']").each(function(){ this.checked = checked_status; }); }); }); 
 jQuery(document).ready(function () { jQuery('.select-all').on('change', function () { if (jQuery(this).is(':checked')) { jQuery('input.class-name').each(function () { this.checked = true; }); } else { jQuery('input.class-name').each(function () { this.checked = false; }); } }); }); 

Este código funciona bien conmigo

  

solo necesita agregar clase checkbox_class a todas las casillas de verificación

Fácil y simple: D

 $("#select_all").change(function () { $('input[type="checkbox"]').prop("checked", $(this).prop("checked")); }); 
 $('.checkall').change(function() { var checkboxes = $(this).closest('table').find('td').find(':checkbox'); if($(this).is(':checked')) { checkboxes.attr('checked', 'checked'); } else { checkboxes.removeAttr('checked'); } }); 
  $("#select_all").live("click", function(){ $("input").prop("checked", $(this).prop("checked")); } }); 

Ahora soy parcial a este estilo.

He nombrado su formulario y he agregado un ‘onClick’ a su casilla select_all.

También he excluido la casilla ‘select_all’ del selector de jquery para evitar que explote Internet cuando alguien hace clic en él.

  function toggleSelect(formname) { // select the form with the name 'formname', // then all the checkboxes named 'select[]' // then 'click' them $('form[name='+formname+'] :checkbox[name="select[]"]').click() } 

  

Aquí hay un plugin de jQuery básico que escribí y que selecciona todas las casillas de verificación en la página, excepto el casillero / elemento que se usará como alternar:

 (function($) { // Checkbox toggle function for selecting all checkboxes on the page $.fn.toggleCheckboxes = function() { // Get all checkbox elements checkboxes = $(':checkbox').not(this); // Check if the checkboxes are checked/unchecked and if so uncheck/check them if(this.is(':checked')) { checkboxes.prop('checked', true); } else { checkboxes.prop('checked', false); } } }(jQuery)); 

Luego simplemente llame a la función en su checkbox o elemento de botón:

 // Check all checkboxes $('.check-all').change(function() { $(this).toggleCheckboxes(); }); 

Ante el problema, ninguna de las respuestas anteriores no funciona. El motivo estaba en el complemento jQuery Uniform (trabajo con el tema metronic ). Espero que la respuesta sea útil 🙂

Trabaja con jQuery Uniform

 $('#select-all').change(function() { var $this = $(this); var $checkboxes = $this.closest('form') .find(':checkbox'); $checkboxes.prop('checked', $this.is(':checked')) .not($this) .change(); }); 

Una checkbox para gobernarlos a todos

Para las personas que todavía buscan un complemento para controlar casillas de verificación a través de uno liviano, tiene soporte inmediato para UniformJS e iCheck y se desactiva cuando al menos una de las casillas de verificación controladas está desmarcada (y se comprueba cuando se controlan todas las casillas de verificación controladas Por supuesto) Creé un complemento jQuery checkAll .

No dude en consultar los ejemplos en la página de documentación .


Para este ejemplo de pregunta, todo lo que necesita hacer es:

 $( '#select_all' ).checkall({ target: 'input[type="checkbox"][name="select"]' }); 

¿No es eso claro y simple?