Letzte Mal I asked about the reverse process, und erhielt einige sehr effiziente Antworten. Ich strebe hier nach den wenigsten Codezeilen. Ich habe eine Form von Feldern und ein assoziatives Array im Format {fieldname: data}, ich möchte ein entsprechendes Formular damit füllen.Füllen Sie ein Formular mit Daten aus einem assoziativen Array mit jQuery
Antwort
Als ich dies für ein tat Projekt, fand ich, dass die Einstellung der Wert von Auswahlfeldern, Optionsfeldern und Kontrollkästchen komplexer Code, etwas in der folgenden Richtung erforderlich:
Ich habe diesen Code nicht getestet, also hoffe ich, dass es keine dummen Syntaxfehler gibt, die ich hätte fangen sollen. Hoffe das hilft.
Ich bin nicht erlaubt, die Kommentare hier (noch) zu kommentieren, so .... Wie im Kommentar erwähnt, behandelt die jQuery. Val (val) -Methode Einstellung Radio Optionsfelder, Kontrollkästchen und wählt.
Sie müssen weiterhin select [name = ...] in Ihr jQuery-Auswahlmuster einfügen oder die Auswahlelemente werden nicht aktualisiert.
Wenn Ihr Formularelemente haben ihre ID an den Feldnamen gesetzt:
$.each(myAssocArry, function(i,val) { $('#'+i).val(val); });
Dies scheint zu Kontrollkästchen fehlen. Sie überprüft sie nicht, stattdessen ändert sie den für sie definierten Wert. – Pentium10
Oder ähnlich dem vorherigen Vorschlag anstelle von ids die Feldnamen:
$.each(data, function(name,value) {
$("input[name='" + name + "']").val(value);
});
Gute Antwort, aber das wird keine Auswahlboxen oder Textfelder aufnehmen. Ändere vielleicht "input [name = ...]" in "* [name = ...]"? Außerdem habe ich gerade einen Syntaxfehler in Ihrem Code behoben. – nickf
Ich bin mir nicht sicher, ob '*' funktionieren würde, und es könnte etwas intensiv sein, wenn es das tut. Sie könnten die anderen Optionen durch Kommata getrennt hinzufügen - $ ("input [name ...], wählen Sie [name ...], textarea [name ...]). Val ... –
Sie können $ (": Eingabe [Name = ... ") und es sollte wählen und Text Bereiche (beachten Sie den Doppelpunkt). –
Ich habe nicht gesehen jQuery handle Übergabe eines einzelnen (Nicht-Array) Wert in val() für eine Radio-oder Kontrollkästchen-Eingabe. Sie müssen sicherstellen, dass der einzelne Wert in ein Array eingeschlossen wird.
Ich wollte die Werte der button-ish Eingänge auch nicht ändern, also filtere ich diese raus.
Hier ist eine Funktion, die das Array-Wrapping, Button-Filtering behandelt und auch die Eingabeauswahl auf ein bestimmtes Formularelement beschränkt. Der Formularparameter ist optional. Wenn sie aus/null/undefiniert bleibt, werden alle Eingaben auf der Seite ausgewählt.
function populateForm(data, form) {
$.each(data, function(name, value) {
var input = $(":input[name='" + name + "']:not(:button,:reset,:submit,:image)", form);
input.val((!$.isArray(value) && (input.is(':checkbox') || input.is(':radio'))) ? [ value ] : value);
});
};
- 1. Füllen Sie ein Aktionsblatt mit einem Array
- 2. Füllen Sie ein Formular aus dem Backend mit angularjs
- 3. Füllen Sie ein Formular beim Klicken aus?
- 4. Hinzufügen/Entfernen von Tabbed-Daten aus einem Formular mit JQuery
- 5. Füllen Sie ein Array mit Etiketten
- 6. Meteor Reagieren füllen Formular mit vorhandenen Daten
- 7. So fügen Sie Daten in MySql mit einem assoziativen Array ein
- 8. Füllen Sie ein Array aus XML-Datei mit Serializable()
- 9. Füllen Sie HTML Formular Eingabefelder mit MySQL Daten onclick
- 10. Füllen Bootstrap-Formular aus Dropdown
- 11. Erzeuge ein Django-Formular aus einem Array
- 12. jQuery Autocomplete Array Füllen
- 13. entfernen Sie ein Array aus einem Array mit dem ersten Element der inneren Arrays mit jquery
- 14. Erstellen Sie Formulardaten mit PHP-Array für CURL-Formular-Daten
- 15. Füllen Sie ein Array zur Kompilierzeit aus Datei
- 16. ausblenden Wählen Sie ein Formular mit jQuery
- 17. Echo Daten aus einem Array mit PHP
- 18. Füllen Sie ein Kombinationsfeld mit einem Zeichenfolgenarray in einem Benutzerformular
- 19. Dynamisch füllen Sie Formularwerte mit jQuery
- 20. Füllen Sie Spinner mit Daten aus einer CSV-Datei
- 21. Keine Daten aus einem Formular
- 22. Wie verwenden Sie Javascript, um ein Textfeld mit Daten zu füllen, die auf einem Auswahlfeld basieren?
- 23. Looping in assoziativen Array mit Bedingungen
- 24. Füllen Sie jQuery modalen Dialogformular
- 25. Get javascript multidimensionales Array aus dem Formular mit JQuery
- 26. Füllen UITableview mit Instanz zu füllen Array
- 27. Symfony2 Formularfelder mit Daten füllen
- 28. Füllen Sie ein Array von Model-Objekten mit Mungo
- 29. Füllen EXTJs-Gitter mit Daten aus PostgreSQL-Datenbank mit ASP.net
- 30. Füllen Eingabefeld mit Jquery sendet keine Daten an Server
werfen Sie einen Blick auf die val() -Funktion. Es behandelt all diese Fälle für Sie, glaube ich. – nickf
Funktioniert gut, aber in der Tat kümmert sich die val() - Funktion um Auswahl- und andere Typen, so dass Sie den Schalter nicht verwenden müssen, ein einfacher jQuery (this) .val (value) genügt in allen Fällen. – gaborous