HTML Formular Eingabe Tag Name Element Array mit JavaScript
Dies ist eine zweiteilige Frage. Jemand eine ähnliche Frage beantwortet, den anderen Tag (die ebenfalls enthaltenen Informationen über diesen Typ von array in PHP), aber ich kann es nicht finden.
1.) Zuerst, was ist die richtige Terminologie für ein array erstellt auf das Ende des name-element ein input-tag in einem Formular?
<form>
<input name="p_id[]" value="0"/>
<input name="p_id[]" value="1"/>
<input name="p_id[]" value="2"/>
</form>
2.) Wie bekomme ich die Daten aus diesem array mit JavaScript? Speziell, ich bin jetzt nur zu wollen, zählen Sie die Elemente des Arrays. Hier ist, was ich Tat, aber es funktioniert nicht.
function form_check(){
for(var i = 0; i < count(document.form.p_id[]); i++){ //Error on this line
if (document.form.p_name[i].value == ''){
window.alert('Name Message');
document.form.p_name[i].focus();
break;
}
else{
if (document.form.p_price[i].value == ''){
window.alert('Price Message');
document.form.p_price[i].focus();
break;
}
else{
update_confirmation();
}
}
}
}
InformationsquelleAutor der Frage ubiquibacon | 2010-07-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
"Oftimes Verwirrend PHPism"
Soweit JavaScript betrifft eine Reihe von Formular-Steuerelemente mit dem gleichen Namen sind nur ein Haufen von Formular-Steuerelemente mit dem gleichen Namen, und Formular-Steuerelemente, die mit Namen, enthalten die eckigen Klammern nur die Formular-Steuerelemente mit Namen, gehören eckigen Klammern.
PHP Namenskonvention für Formular-Steuerelemente mit dem gleichen Namen ist manchmal nützlich (wenn Sie haben eine Anzahl von Gruppen von Steuerelementen, so dass Sie tun können, Dinge wie diese:
) aber nicht zu verwechseln einige Leute. Einige andere Sprachen übernommen haben, die Konvention, da dies ursprünglich geschrieben wurde, aber in der Regel nur als optionales feature. Zum Beispiel über dieses Modul für JavaScript.
Es ist nur noch eine Frage der Eigenschaft mit dem gleichen Namen wie das Formular-Steuerelement aus
elements
. Der trick ist, dass da der name des Formular-Steuerelemente enthält eckige Klammern, die Sie nicht verwenden können, die Punkt-notation und verwenden eckige Klammer notation wie jede andere JavaScript-Eigenschaft name enthält Sonderzeichen.Da Sie mehrere Elemente mit diesem Namen, wird es eine Sammlung eher dann ein einzelnes Steuerelement, so können Sie die Schleife über es mit einem standard-for-Schleife, macht sich seine length-Eigenschaft.
InformationsquelleAutor der Antwort Quentin
Versuchen, diese so etwas wie dieses:
InformationsquelleAutor der Antwort Matt King
document.form.p_id.length
... nicht count().Sollten Sie wirklich geben Sie Ihrem Formular eine id
Dann finden Sie es mit:
Beziehen sich dann auf die Elemente wie:
InformationsquelleAutor der Antwort Andir
Beantworten Ihre Fragen in der Reihenfolge:
1) Es gibt keinen bestimmten Namen für diese. Es ist einfach, mehrere Elemente mit demselben Namen (und in diesem Fall geben Sie als gut). Name nicht eindeutig ist, das ist der Grund, warum id erfunden wurde (es soll eindeutig sein).
2)
InformationsquelleAutor der Antwort jmoreno
Hier einige PHP-und JavaScript-demonstration-code zeigt eine einfache Möglichkeit zum erstellen von indizierten Felder in einem Formular (Felder mit dem gleichen Namen) und dann zu verarbeiten, die sowohl in JavaScript und PHP. Die Felder müssen beide "ID" - Namen und "NAMEN" - Namen. Javascript verwendet die ID und verwendet PHP den NAMEN.
InformationsquelleAutor der Antwort John