2011-05-29 16 views
31
<input type="checkbox" name="options[]" value="1" /> 
<input type="checkbox" name="options[]" value="2" /> 
<input type="checkbox" name="options[]" value="3" /> 
<input type="checkbox" name="options[]" value="4" /> 
<input type="checkbox" name="options[]" value="5" /> 

¿Cómo puedo hacer una matriz con los valores de las casillas de verificación que están marcadas?jquery casilla de verificación múltiple matriz

NOTA: (IMPORTANTE) Necesito una matriz como [1, 2, 3, 4, 5] y no como ["1", "2", "3", "4", "5"].
NOTA: Hay alrededor de 50 casillas de verificación.

¿Alguien me puede ayudar? ¡Por favor!

¡Gracias!

+0

Posible duplicado de [Obtener todas las casillas de verificación seleccionadas en una matriz] (http://stackoverflow.com/questions/590018/getting-all-selected-checkboxes-in-an-array) – Duvrai

Respuesta

62
var checked = [] 
$("input[name='options[]']:checked").each(function() 
{ 
    checked.push(parseInt($(this).val())); 
}); 
55

Puede utilizar $.map() (o incluso la función .map() que opera en un objeto jQuery) para obtener una matriz de valores controladas. El (+) operador unitario echará la cadena en un número

var arr = $.map($('input:checkbox:checked'), function(e,i) { 
    return +e.value; 
}); 

console.log(arr); 

Aquí es an example

+0

+1 para usar el operador unario. –

+4

+1 esta respuesta es más elegante que la mía. – Dormouse

+0

¡Gracias por compartir esto! ¿Sabes cómo agregar los valores verificados a una entrada que no abarca? Intenté '$ ('# test'). Val (arr.join (','));' – CyberJunkie

2
var checkedString = $('input:checkbox:checked.name').map(function() { return this.value; }).get().join(); 
2

Si usted tiene una clase para cada uno de su cuadro de entrada, a continuación, puede hacerlo como

 var checked = [] 
     $('input.Booking').each(function() 
     { 
      checked.push($(this).val()); 
     }); 
Cuestiones relacionadas