Daggie: Alle name-Attribute ermitteln, best resolution, best practice

Beitrag lesen

hi,

Zu ermitteln sind alle Name-Attribute innerhalb eines Formulars.

du meinst vermutlich alle Formularelemente mit einem name-Attribut? - So eine Liste gibt es schon, die stellt Javascript in form.elements[] als Array zur Verfügung.

Juhu, das ist ja ideal, und ich hab das heute mal getestet. Cool!!! und der IE kanns auch ;)

Gern, aber mir ist noch nicht klar, was du wirklich willst.

Herkömmlich für CGI/Submit bei Formularverarbeitung sind die im Attribute name= konfigurierten Werte. Für mich steht bei einer Erweiterung auf Ajax die Kompatibilität im Vordergrund. D.h., an bereits vorliegenden Formularen soll nichts geändert werden, sofern neben CGI/Submit auch Ajax möglich sein soll.

Ausschlaggebend ist also das name-Attribut an Input-Elementen, über dieses Attribut werden Eingaben sowohl scalar erfasst (nur ein name-Attribut) als auch für multiple Inputs gruppiert (mehrere Input-Elemente mit demselben name-Attribut, Mehrfachauswahl). Eben aufgrund dieser Anforderung habe ich eine JS-Library entwickelt, wobei die Zentralfunktion zum Ermitteln der Benutzereingaben auf die Liste mit den name-Attributen aufsetzt. Welchen Type beim Funktionsaufrufruf die Inputfelder sind, type='text', type='checkbox' usw. ist dem Anwender der Funktion transparent, d.h., er muss sich darum nicht bekümmern. Die Funktion liefert ein Objekt, in welchem die Benutzereingaben multiple/einfach => array/scalar sauber getrennt sind.

Wie das Request-Objekt aussieht, siehe in einem meinem Beitrag weiter oben. Die Anwendung meiner Lib ist nun denkbar einfach, es wird lediglich anhand der Formular-ID eine Funktion aufgerufen, welche Benutzereingaben clientseitig in genau derselben Datenstruktur liefert wie serverseitig.

PS: Es gab vor ein paar Tagen einen Thread zu genau demselben Thema (speziell Mehrfachauswahl). Ich bin an dieser Sache schon länger dran, je nachdem, wie ich gerade Zeit habe. In meiner Lösung nun müssen die name= Werte nicht irgendwelchen Konventienen genügen, z.B. müssen die Namen, wie im Fall PHP nicht name='name[]' lauten, d.h. die Klammern sind für den Anwender meiner Lib unnötig.

--Dag