2011-12-19 25 views
32

Tengo un conjunto de casillas de verificación de entrada con el mismo nombre y me gustaría determinar qué casillas de verificación se han verificado mediante javascript, ¿cómo puedo lograr eso? Sólo sé cómo conseguir todas las casillas de verificación de la siguiente manera:Cómo obtener todas las casillas marcadas

var checkboxes = document.getElementsByName('mycheckboxes'); 
+1

sí ya existen, pero todos ellos, la solución es con jQuery, y necesito una solución JS llano, esa es la diferencia. –

+0

Eche un vistazo a lo siguiente http://stackoverflow.com/questions/1543017/javascript-check-all-checkboxes-in-a-table-asp-net – Lijo

Respuesta

68

Un simple bucle for que pone a prueba la propiedad checked y anexa los controladas queridos a una matriz separada. A partir de ahí, puede procesar la matriz de checkboxesChecked más si es necesario.

// Pass the checkbox name to the function 
function getCheckedBoxes(chkboxName) { 
    var checkboxes = document.getElementsByName(chkboxName); 
    var checkboxesChecked = []; 
    // loop over them all 
    for (var i=0; i<checkboxes.length; i++) { 
    // And stick the checked ones onto an array... 
    if (checkboxes[i].checked) { 
     checkboxesChecked.push(checkboxes[i]); 
    } 
    } 
    // Return the array if it is non-empty, or null 
    return checkboxesChecked.length > 0 ? checkboxesChecked : null; 
} 

// Call as 
var checkedBoxes = getCheckedBoxes("mycheckboxes"); 
+1

Apoyo esta solución. +1 por mi Es simple JavaScript y funciona. –

+2

+1 por ser una solución JS pura –

+0

cómo hacerla como un método JS util que devolverá la matriz del valor comprobado, y nulo si nadie está marcado? –

45

En IE9 +, Chrome o Firefox que puede hacer:

var checkedBoxes = document.querySelectorAll('input[name=mycheckboxes]:checked'); 
Cuestiones relacionadas