column colgroup bootstrap javascript jquery html

javascript - colgroup - Bucle sobre la tabla html y verifique las casillas de verificación(JQuery)



table html (3)

El siguiente fragmento de código habilita / deshabilita un botón dependiendo de si se ha marcado al menos una casilla de verificación en la página.

$(''input[type=checkbox]'').change(function () { $(''#test > tbody tr'').each(function () { if ($(''input[type=checkbox]'').is('':checked'')) { $(''#btnexcellSelect'').removeAttr(''disabled''); } else { $(''#btnexcellSelect'').attr(''disabled'', ''disabled''); } if ($(this).is('':checked'')){ console.log( $(this).attr(''id'')); }else{ console.log($(this).attr(''id'')); } }); });

Aquí está la demo en JSFiddle .

Tengo una tabla HTML con una casilla de verificación en cada fila.
Quiero pasar por encima de la tabla y ver si hay alguna casilla de verificación que esté marcada.
Lo siguiente no funciona:

$("#save").click( function() { $(''#mytable tr'').each(function (i, row) { var $actualrow = $(row); checkbox = $actualrow.find(''input:checked''); console.log($checkbox); });

Esto imprime en la consola lo siguiente:

[prevObject: jQuery.fn.jQuery.init[1], context: tr, selector: "input:checked", constructor: function, init: function…]

por fila independientemente de si se marca alguna casilla de verificación.

Actualizar
Mismo problema con:

$(''#mytable tr'').each(function (i, row) { var $actualrow = $(row); $checkbox = $actualrow.find('':checkbox:checked''); console.log($checkbox); });


Use esto en su lugar:

$(''#save'').click(function () { $(''#mytable'').find(''input[type="checkbox"]:checked'') //... });

Permítame explicarle lo que hace el selector: input[type="checkbox"] significa que esto coincidirá con cada <input /> con el tipo de atributo type igual a checkbox de checkbox Después de eso :checked coincidirá con todas las casillas de verificación marcadas.

Puede pasar por encima de estas casillas de verificación con:

$(''#save'').click(function () { $(''#mytable'').find(''input[type="checkbox"]:checked'').each(function () { //this is the current checkbox }); });

Aquí está la demo en JSFiddle .

Y aquí hay una demostración que resuelve exactamente su problema http://jsfiddle.net/DuE8K/1/ .

$(''#save'').click(function () { $(''#mytable'').find(''tr'').each(function () { var row = $(this); if (row.find(''input[type="checkbox"]'').is('':checked'') && row.find(''textarea'').val().length <= 0) { alert(''You must fill the text area!''); } }); });


use .filter('':has(:checkbox:checked)'' es decir:

$(''#mytable tr'').filter('':has(:checkbox:checked)'').each(function() { $(''#out'').append(this.id); });