HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ? |
 |

09-08-2010, 22:24
|
PHP-Master07
Registrierter Benutzer
|
|
Registriert seit: Nov 2007
Ort: Austria (currently US)
Beiträge: 33
|
|
forms.elements beinhaltet nicht nur INPUT-Felder
Ich möchte alle Eingaben eines Formulares mit AJAX an den Browser übermitteln. Ich möchte eine Funktion schreiben, die alle INPUT-Felder im FORM-Element in ein assoziatives Array schreibt. Dabei soll das 'name'-Attribut der Schlüssel sein und das 'value'-Attribut der Inhalt. (Also nach dem gleichen Schema wie die POST-Variable in PHP.)
Wenn ich nun myForm.elements (wobei 'myForm' mein Formular ist), so enthält der Array am Ende drei Elemente, die im HTML-Quellcode aber nicht als INPUT-Felder zu erkennen sind:
[undefined] => undefined
[item] => undefined
[namedItem] => undefined
Wenn ich myForm.getElementsByTagName("input") schreibe, ändert sich auch nichts.
Woher kommen diese drei Elemente und was kann ich machen, damit ich wirklich nur alle INPUT-Felder (und sonst nichts) erhalte?
Danke schon mal für eure Mühe.
|

09-08-2010, 23:42
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.709
|
|
Hallo,
arbeite die elements-Property einfach als Array ab (mit for-Schleife und length statt for…in), dann passiert das nicht.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

10-08-2010, 21:10
|
PHP-Master07
Registrierter Benutzer
|
|
Registriert seit: Nov 2007
Ort: Austria (currently US)
Beiträge: 33
|
|
Danke, jetzt funktioniert es.
Worin liegt jetzt der Unterschied zwischen
HTML-Code:
for(var i in forms.elements)
und
HTML-Code:
for(var i = 0; forms.elements.length; i++)
?
Kann mir jemand das Schlüsselwort verraten, zu dem ich auf Google eine Erklärung dafür finde?
|

10-08-2010, 21:27
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.709
|
|
Die erste Variante (for-in-Schleife) iteriert über Objekte und liefert alle enthaltenen Eigenschaftsnamen. Arrays sind besondere Objekte, die zunächst erstmal die Eigenschaften 0 bis N besitzen, darüberhinaus aber auch noch weitere (z. B. length), die in diesem Falle natürlich auch abgerufen werden.
Die zweite Variante (normale for-Schleife) ist daher für Arrays besser geeignet, weil man die length-Eigenschaft als Schleifenbedingung benutzen kann (ohne sie jedoch im Ergebnis haben zu wollen) und nur die numerischen Eigenschaften (0 bis N) als Ergebnis abruft.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (13-08-2010 um 14:39 Uhr)
Grund: vorher stand da 1 bis N
|

13-08-2010, 09:38
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 403
|
|
du könntest natürlich auch einfach auf "undefined" testen (if) und das als Abbruchbedingung bei deiner Verarbeitung nehmen ....
__________________
Wer LESEN kann, ist klar im Vorteil!
|

13-08-2010, 14:17
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Das wäre aber nicht sonderlich einfacher, als einfach eine for-Schleife zu nehmen.
for-in ist für sowas weder gedacht, noch sonderlich geeignet.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

14-08-2010, 10:11
|
PHP-Master07
Registrierter Benutzer
|
|
Registriert seit: Nov 2007
Ort: Austria (currently US)
Beiträge: 33
|
|
Danke für eure Hilfe!
Ich habe im Internet nun auch einiges bzgl. "Assoziative Arrays in Javascript" gelesen und verstehe jetzt das Verhalten.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Ähnliche Themen
|
Thema |
Autor |
Forum |
Antworten |
Letzter Beitrag |
Input Felder
|
Anbu |
HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS |
14 |
11-12-2008 20:11 |
Firefox und Input-Felder
|
Breezzer |
HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS |
1 |
10-09-2006 17:12 |
Input Felder, For each und Insert in DB
|
Luka |
PHP Developer Forum |
10 |
26-04-2006 11:27 |
input-Felder ueberpruefen
|
pseo |
HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS |
9 |
05-09-2002 14:39 |
Felder füllen, inerhalb eines Forms?
|
Almir |
HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS |
4 |
24-04-2002 16:47 |
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|