2016-08-02 9 views
1

Ich mache eine Umfrage-Seite mit ein paar Kontrollkästchen. Und ich habe ein Array results, das zählt, wie viele Checkboxen geklickt wurden.Extrahieren Wert von Kontrollkästchen mit Index

<h2>What's your favorite pet</h2> 
<form> 
<input type="checkbox" name="cb[0]" value="Cats"/> 
<input type="checkbox" name="cb[1]" value="Dogs"/> 
<input type="checkbox" name="cb[2]" value="Spiders"/> 
<input type="checkbox" name="cb[3]" value="Whales"/> 
</form> 

ich auch eine „Ergebnisse anzeigen“ Schaltfläche, die eine Warnmeldung mit einem String-Variable zeigt, dass ich die Optionen hart codiert habe (Katzen, Hunde, ...) mit ihren Ergebnissen verknüpft werden. Hier ein Beispiel:

var myResults = "Cats "+results[0] + " Dogs "+results[1] + " Spiders "+results[2]; 

Mein Problem ist, dass, wenn ich eine neue Option, um die Umfrage hinzufügen will, muß ich es auch manuell hinzufügen, um den myResults String. Wie kann ich das automatisch machen?

Ich versuchte ein paar Dinge, aber ich konnte sie nicht arbeiten lassen. Hier sind sie:

var allCheckboxes = document.getElementsByTagName("input"); //I only have checkboxes on the page 
var resultsReady=""; 
for(var i=0;i<allCheckboxes.length;i++){ 
var currentVal = $("input")[i].val(); //this expression is false for some reason 
resultsReady.concat(currentVal,results[i]," ");} 

warum nicht $("input")[2].val(); Arbeit? Ich weiß, dass es nicht funktioniert, weil ich es isoliert habe und es nicht funktioniert hat.

Ich versuchte auch $("input").get(i).val();, aber es hat nicht funktioniert, und ich kann irgendwie sehen, warum, aber ich weiß nicht, wie man es beheben kann.

Letzte Sache, die ich versuchte, war $("input['cb[i]']"), aber ich weiß nicht, ob dieser Ausdruck funktioniert.

Antwort

2

Es ist eq() Sie suchen:

$("input").eq(i).val(); 
// or 
$("input:eq(" + i + ")").val(); 

Sie diese verwenden können, aber dann ist es value statt val(), weil Sie ein DOM-Element in diesem Fall erhalten.

$("input")[i].value; 
Verwandte Themen