2012-08-14 24 views
37

¿Cómo puedo obtener el valor de las casillas de verificación que se seleccionan usando jquery? Mi código HTML es el siguiente:cómo obtener el valor de casilla múltiple usando jquery

<input id="ad_Checkbox1" class="ads_Checkbox" type="checkbox" value="1" /> 
<input id="ad_Checkbox2" class="ads_Checkbox" type="checkbox" value="2" /> 
<input id="ad_Checkbox3" class="ads_Checkbox" type="checkbox" value="3" /> 
<input id="ad_Checkbox4" class="ads_Checkbox" type="checkbox" value="4" /> 
<input type="button" id="save_value" name="save_value" value="Save" /> 

Respuesta

77

Pruebe esta función

<input name="selector[]" id="ad_Checkbox1" class="ads_Checkbox" type="checkbox" value="1" /> 
<input name="selector[]" id="ad_Checkbox2" class="ads_Checkbox" type="checkbox" value="2" /> 
<input name="selector[]" id="ad_Checkbox3" class="ads_Checkbox" type="checkbox" value="3" /> 
<input name="selector[]" id="ad_Checkbox4" class="ads_Checkbox" type="checkbox" value="4" /> 
<input type="button" id="save_value" name="save_value" value="Save" /> 

$(function(){ 
     $('#save_value').click(function(){ 
     var val = []; 
     $(':checkbox:checked').each(function(i){ 
      val[i] = $(this).val(); 
     }); 
     }); 
    }); 
17

Puede hacerlo de esta manera,

$('.ads_Checkbox:checked') 

Se puede recorrer con each() y llenar la matriz con los valores checkedbox.

Live Demo

para obtener los valores de las casillas seleccionadas en orden

var i = 0; 
$('#save_value').click(function() { 
     var arr = []; 
     $('.ads_Checkbox:checked').each(function() { 
      arr[i++] = $(this).val(); 
     });  
}); 

Editar, utilizando .map()

Puede también utilizar jQuery.map con get() a obtener la matriz de valores de checkboxe seleccionados.

Como nota al margen usando this.value en lugar de $(this).val() se obtendría un mejor rendimiento.

Live Demo

$('#save_value').click(function(){ 
    var arr = $('.ads_Checkbox:checked').map(function(){ 
     return this.value; 
    }).get(); 
}); 
1

puede obtener como esto

$('#save_value').click(function(){ 
$('.ads_Checkbox:checked').each(function(){ 
    alert($(this).val()); 
         });}); 

jsfiddle

+1

que realmente debe publicar el código junto con su respuesta. Digamos que jsfiddle cayó, o murió ... esta respuesta no tendría valor. También ayudaría a las personas a encontrar la respuesta que están buscando a través de google, etc. – Jeemusu

+0

hay miles de respuestas que usan jsfiddle en SO y jsfiddle es la mejor manera de ver las cosas de manera operativa para proporcionar una mejor respuesta a la pregunta – rahul

+0

Usando jsfiddle es genial, hágalo, pero también publique la respuesta dentro de Stackoverflow. Como dije, digamos que jsfiddle desapareció de internet, y alguien con el mismo problema encontró esta publicación ... no habría respuesta, solo un enlace muerto. Tampoco sería indexado por los motores de búsqueda. – Jeemusu

1

Desde u tienen el mismo nombre de la clase contra todos casilla de verificación, por lo tanto

$(".ads_Checkbox") 

dar u todas las casillas de verificación, y luego se puede repetir utilizando cada uno lazo como

$(".ads_Checkbox:checked").each(function(){ 
    alert($(this).val()); 
}); 
2

Puede probar;

$('#save_value').click(function(){ 
    var final = ''; 
    $('.ads_Checkbox:checked').each(function(){   
     var values = $(this).val(); 
     final += values; 
    }); 
    alert(final); 
}); 

Esto devolverá todos los valores de la casilla de verificación en una sola instancia.

Here es una demostración de trabajo en vivo.

0

Pruebe getPrameterValues() para obtener valores de varias casillas de verificación.

50

para obtener una serie de valores de varias casillas de verificación marcada, uso Mapa jQuery/get funciones:

$('input[type=checkbox]:checked').map(function(_, el) { 
    return $(el).val(); 
}).get(); 

Esto devolverá matriz con valores controladas, como éste: ejemplo ['1', '2']

Aquí está trabajando en jsfiddle: http://jsfiddle.net/7PV2e/

1

También puede usar $('input[name="selector[]"]').serialize();. Devuelve cadena codificada como URL: "selector% 5B% 5D = 1 & selector% 5B% 5D = 3"

0

prueba este ... (chicos soy una abeja nueva ... así que si me equivoco entonces estoy realmente lo siento. Pero he encontrado una solución por esta vía.)

var suggestion = []; 
     $('#health_condition_name:checked').each(function (j, ob) { 
      var odata = { 
       health_condition_name: $(ob).val() 
      }; 
      health.push(odata); 
     }); 
0
$('input:checked').map(function(i, e) {return e.value}).toArray(); 
Cuestiones relacionadas