2012-08-14 9 views
37

Wie kann ich den Wert der Kontrollkästchen, die mit jquery ausgewählt werden? Mein HTML-Code ist wie folgt:Wie bekomme ich mehrere Kontrollkästchen Wert mit 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" /> 

Antwort

77

Versuchen Sie, diese

<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" /> 

Funktion

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

Sie können es so machen,

$('.ads_Checkbox:checked') 

Sie durch sie mit checkedbox Werte mit each() und füllen das Array iterieren kann.

Live Demo

Um die Werte von ausgewählten Kontrollkästchen in Array

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

bearbeiten, mit .map()

Sie können auch jQuery.map mit get() verwenden zu bekommen Holen Sie das Array der ausgewählten Checkbox-Werte.

Als eine Randnotiz mit this.value anstelle von $(this).val() würde eine bessere Leistung geben.

Live Demo

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

Sie können sie wie folgt

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

jsfiddle

+1

Sie sollten wirklich den Code zusammen mit Ihrer Antwort posten. Sprich, das Kind ist untergegangen oder gestorben ... diese Antwort wäre wertlos. Es würde auch Leuten helfen, die Antwort zu finden, die durch Google usw. suchen. – Jeemusu

+0

dort sind tausend von Antworten, die jsfiddle auf SO verwenden und jsfiddle ist der beste Weg, die Sachen in der Arbeitsart zu sehen, bessere Antwort zur Frage – rahul

+0

zu liefern Using jsfiddle ist großartig, bitte tun Sie es, aber bitte posten Sie die Antwort auch in Stackoverflow! Wie gesagt, sagen wir, dass jfiddle aus dem Internet verschwunden ist und jemand mit dem gleichen Problem diesen Post gefunden hat ... es würde keine Antwort geben, nur ein toter Link. Es würde auch nicht von Suchmaschinen indiziert werden. – Jeemusu

1

Da u die gleiche Klassennamen gegen alle Kontrollkästchen haben, so

$(".ads_Checkbox") 

geben u alle Kontrollkästchen, und dann können Sie durchlaufen sie jeweils mit Schleife wie

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

Sie können versuchen;

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

Dadurch werden alle Kontrollkästchenwerte in einer einzigen Instanz zurückgegeben.

Here ist ein funktionierendes Live-Demo.

0

Versuchen Sie getPrameterValues() zum Abrufen von Werten aus mehreren Kontrollkästchen.

50

Um ein Array von Werten zu erhalten von mehreren Kontrollkästchen aktiviert, verwenden Sie jQuery Karte/Funktionen erhalten:

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

Dies wird mit karierten Wert zurückgeben Array, wie diese: ['1', '2']

Hier arbeitet Beispiel auf jsfiddle: http://jsfiddle.net/7PV2e/

1

Sie können auch $('input[name="selector[]"]').serialize(); verwenden. Es gibt URL codierte Zeichenfolge wie: "Selektor% 5B% 5D = 1 & Selektor% 5B% 5D = 3"

0

versuchen Sie diese .. (Jungs, ich bin eine neue Biene .. also wenn ich falsch liege, dann bin ich wirklich sorry. Aber ich fand auf diese Weise eine Lösung.)

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(); 
Verwandte Themen