Tom2748: Pflichtfeldprüung abhängig vom Vorhandensein eines Feldes

Beitrag lesen

Hallo,

Es wird ein HTML Formular Dokument mit INPUT Feldern erstellt.
Beim Submit soll via JS geprüft werden, ob ein value vorhanden ist.

das ist hoffentlich der optionale Teil. Da JS immer umgangen werden kann, sollte auf jeden Fall auch eine serverseitige Überprüfung stattfinden.

Das ist unerheblich. Die Verarbeitung findet innerhalb eines CMS statt. Nur ein eingeschränkter Nutzerkreis mit vorgegebener Browsereinstellung bedient das Formular. Das endgültig statisch erstellte Dokument verwendet kein JS mehr. Die Alternative zu dieser Art der Pflichtfeldprüfung wäre eine umständliche Perl Programmierung.

Das HTML Dokument verfügt nicht immer über die gleichen Formularinhalte.
Der Feldname X kommt jetzt vor, bei der Erstellung des nächsten Dokuments aber nicht.

Klingt nach einem schlecht durchdachten Konzept.
Ändern sich nur die Feldnamen, oder auch die komplette Struktur? Falls sich nur die Feldnamen ändern, könntest du die Felder auch über deren Index (d.h. deren Position im DOM) adressieren.

Dokument A kann das Formularfeld INPUTX enthalten. Das Problem: Beim nächsten Aufruf von Dokument A lautet der Feldname nicht mehr INPUTX sondern INPUTX_0_0_25. LediglichINPUTX bleibt gleich. Alles was mit INPUTX beginnt, muss aber beim Submit geprüft werden. Ich kann dem INPUT Feld aber eine wie auch immer geartete kennzeichnung zuweisen, unabhängig vom Feldnamen.

Ist es möglich, den JS Check für INPUT Feld X nur durchzuführen, wenn INPUT Feld X auch im HTML Dokument vorhanden ist?

Natürlich. Mit getElementsByName(), angewandt auf das Formular, bekommst du eine Liste (quasi ein Array) aller Elemente mit einem bestimmten Namen. Diese Liste hat eine length-Eigenschaft. Wenn dieser Wert 0 ist, gibt es im betrachteten Dokumentteil kein Element mit dem gewünschten Namen.

Gruß, Tom