2009-09-02 11 views
10

Ich habe ein Problem, ich habe X <input type="checkbox" /> in meinem Code, jetzt möchte ich Foreach dieses Objekt/Array seine out Put. - Schau meinen Code an.foreach Objekt/Array in jQuery

$("#denied_seekrs").click(function() 
{ 
    if (!isCheckedById("selectname")) 
    { 
     alert ("Please select at least one event"); 
     return false; 
    } 
    else 
    { 
     alert($("input[@id=selectname]:checked").val()); //submit the form 
    } 
}); 

function isCheckedById(id) 
{ 
    var checked = $("input[@id="+id+"]:checked").length; 
    if (checked == 0) 
    { 
     return false; 
    } 
    else 
    { 
     return true; 
    } 
} 

Wenn ich Ausgabe, die es in Alarm erhalte ich ein Objekt, aber wenn ich wählen Sie 2 Checkbox ich, was der Wert in diesem 2 Kontrollkästchen.

Ich hoffe, ich kann hilfreich sein, und alle hier verstehen mich :)

+3

@NeoNmaN: Es gibt nützliche Rechtschreibprüfprogramme für fast jeden Browser verfügbar. Versteh mich nicht falsch, aber ich denke, du solltest einen installieren. Diese Frage ist wirklich schwer zu verstehen. – Tomalak

+0

Sie müssen Ihre Frage klären. Sie möchten den Wert von allen aktivierten Kästchen abrufen? Und was willst du damit machen? Wenn Sie das Formular einfach wie im Kommentar neben der Warnung angeben, werden alle Kontrollkästchenwerte an den Server gesendet. –

Antwort

25

Wie wäre es

$("#denied_seekrs").click(function() { 
    var checkedInputs = $("input:checked"); 
    var test = ""; 
    $.each(checkedInputs, function(i, val) { 
     test += val.value+","; 
    }); 
    test = test.substring(0,(test.length-1)); 
    alert(test); 
}); 
+1

Um es für Arrays von Zeichenfolgen arbeiten, änderte ich die Zeile: test + = val.value + ","; um + = val + "," zu testen; –

0

Wenn ich Sie richtig verstanden habe, wollen Sie der Benutzer eine Checkbox auswählen (oder ist es ein oder mehrere?). Dies sollte es tun:

$("#denied_seekrs").click(function() 
{ 

    var $checkedInputs = $("input:checked"); 

    if ($checkedInputs.length != 1) 
    { 
     alert ("Please select one event"); 
     return false; 
    } 

    alert($checkedInputs.val()); //submit the form 
}); 

EDIT: Nach Ihrer Frage wieder zu lesen, erkannte ich, dass der obige Code nicht Ihre Frage nicht beantworten. Dies funktioniert jedoch und ist eine viel kürzere Version Ihrer Lösung. Vielleicht möchten Sie es stattdessen verwenden. Um Ihre Frage zu beantworten, könnten Sie den Wert aller kreuzte Kästchen wie diese alarmieren:

ändern diese:

alert($checkedInputs.val()); //submit the form 

dazu:

var values = ""; 
    $checkedInputs.each(function(){ 
     values += $(this).val() + " "; 
    }); 

    alert(values); 
+0

nein, es funktioniert nicht,:/es gibt nur den ersten Wert zurück. – ParisNakitaKejser

+0

@NeoNmaN: Ja, ich habe deine Frage zuerst falsch beantwortet. Ich habe gerade ein Beispiel hinzugefügt, um alle Werte in der Warnung zu erhalten. –

3

Ich bin mir nicht ganz sicher, was Sie‘ suche nach, aber ich vermute, dass die jQuery.each() method helfen wird. Sie können es verwenden, um über Arrays, Objekte und mehr zu iterieren.

var arr = [ "one", "two", "three", "four", "five" ]; 

jQuery.each(arr, function() { 
    $("#" + this).text("My id is " + this + "."); 
    return (this != "four"); // will stop running to skip "five" 
}); 
2

wie über etwas wie folgt aus:

jQuery.each(checked, function() { 
     $(checked + this).text("My id is " + this + "."); 

    }); 
+0

http://docs.jquery.com/Utilities/jQuery.each – william

+0

mabye sollten Sie umbenennen, um einen anderen Namen zu überprüfen – william

2

Kann es sein, dass - letztendlich - Sie sind für $.serializeArray() oder $.serialize() suchen?

Wenn nicht, dann vielleicht ist dies hilft Ihnen:

$("#denied_seekrs").click(function() 
{ 
    if (!isCheckedById("selectname")) 
    { 
     alert ("Please select at least one event"); 
     return false; 
    } 
    else 
    { 
     // prepare array of values 
     var values = []; 

     // prepare list of checked checkboxes 
     var $checkboxes = $("input[@id=selectname]:checked"); 

     // push each individual value into the array 
     $checkboxes.each(function() { values.push($(this).val()); }); 

     // debug output 
     alert(values.join("\n")); 
     //submit the form 
    } 
}); 
Verwandte Themen