• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Pflichtfelder aus der Pflichtfeldprüfung nehmen, wenn diese ausgeblendet sind

Calvinstefan

New member
Hallo Profis!

Ich versuche mich derzeit an einem umfangreichen Kontaktformular und bin dabei auf ein Problem gestoßen, welches ich nicht gelöst bekomme.
Würdet ihr mir dabei bitte helfen?! ...

Die Ausgangslage:
JQuery ist eingebunden und funktioniert.

Das Formular:
Nehmen wir an, dass das Formular als Grundgerüst eine zweispaltige Tabelle hat.
Spalte eins enthält immer die Feldbezeichner (z.B. Anrede, Name, Vorname, Straße, ..), die Spalte zwei die Eingabefelder oder Checkboxen oder Radiobuttons.
Felder, welche in Abhängigkeit von Eingaben oder Auswahlen aus- oder eingeblendet werden müssen, blende ich per
Code:
.closest('tr').hide()
ein oder aus. Es wird also immer die ganze Zeile ausgeblendet.

Das Problem:
Einige dieser ausgeblendeten Felder wurden als Pflichtfelder deklariert.
Dies erreiche ich, indem ich in dem Tag "verify" das Attribut "notempty" gesetzt habe. Also
Code:
<input ... verify="notempty">
.
Wird das Formular also abgesendet, dann wird geprüft, ob alle Pflichtfelder einen Eingabewert enthalten.
Diese Prüfung bezieht sich nun natürlich auch auf Felder, die in einer per
Code:
.closest('tr').hide()
ausgeblendeten Zeile stehen.
Meine Prüfung schlägt entsprechend fehl, das Formular kann nicht gesendet werden, aber die fehlerhaft gemeldeten Felder können nicht bearbeitet werden, da sie ja ausgeblendet sind.

Mein Lösungsansatz:
Ich suche nach einem Skript, welches beim Klick des Senden-Buttons über das Formular läuft, und bei allen Pflichtfeldern, die sich in einer per
Code:
.closest('tr').hide()
ausgeblendeten Zeile befinden, das
Code:
notempty
entfernt.

Würdet ihr mir hierbei bitte weiterhelfen?

Oder:
ist mein Gesamtansatz falsch, um das Gewünschte zu erreichen?!
Hättet ihr eine bessere Lösung für das Ausblenden der Pflichtfelder?!

Danke Euch!

Gruß,
Stefan.
 
OK, vielen Dank für den Tipp!
Für meine Zwecke benötige ich den hidden-Selektor. Ich möchte ja bei allen nicht sichtbaren Elementen das verify="notempty" entfernen.

In diesem Zusammenhang habe ich aber noch ein Problem ...
Ist es möglich zwei Arbeitsschritte in einem Statement zu erledigen? Einerseits die Suche nach allen Elementen, die
- "hidden" sind und
- die das Attribut "verify" haben
und gleichzeitig
- das "value" des Attributes "verify" von "='notempty'" auf "=''", also leer zu setzen?
Oder gar das Attribut "value" komplett zu entfernen?

Ich hatte folgendes versucht:

Der Selektor "$("*:hidden[verify]")" funktioniert schon mal. Ich hatte dies mit $("*:hidden[verify]").show() ausprobiert. Es funktioniert.
Aber wie verpacke ich in diese Abfrage nun noch das "Leeren" des verify-Attributes? Bzw. das Entfernen dieses Attributes?!

Danke Euch!

Gruß,
Stefan.
 
Zuletzt bearbeitet:
Ist evtl. mit .removeAttr('value') möglich, wenn der Selektor passt. Einfach hinten dran hängen.

Wäre es nicht einfacher beim Absenden die Pflichtfeldprüfung um die Bedingung "und sichtbar" zu erweitern? Ich habe ein bisschen den Verdacht auf "von hinten durch die Brust ins Auge".
 
Hallo,
vielen Dank für Deinen Vorschlag mit dem .removeAttr
Damit funktioniert es!!

Und ... ich frage doch alle ausgeblendeten Elemente ab: $("*:hidden[verify]")
Also alle nicht sichtbaren und die das Attribut "verify" tragen.

Mit $("*:hidden[verify]").removeAttr("verify"); funktioniert es!
Vielen Dank für Eure Hilfe!!

Gruß,
Stefan.
 
Zurück
Oben