Hallo ins Forum,
wie kann ich Benutzereingaben in einem Formular (läuft mit Mailformplus) auf Richtigkeit prüfen ohne Javascript einzusetzen.
Die Pflichtfelder werden geprüft und es erscheinen beim Nichtausfüllen die entsprechenden Errormessages. Wunderbar. ABER ein Benutzer kann ja in ein Pflichtfeld z.B. in das Feld E-Mail Adresse irgendwas rein schreiben. Ich möchte die E-Mail jedoch auf korrekte Eingabe mit @ und . und mind. 2 Zeichen nach dem Punkt prüfen und dann auch dementsprechend eine Errormessage ausgeben.
Anderer Fall: Der Benutzer möchte sich für etwas anmelden und setzt dazu ein Häckchen. Wenn dieses Häckchen gesetzt ist muss er in weiteren Feldern auch etwas eintragen.
Verständlich was ich meine?
Wie und wo kann ich das nun prüfen, eben ohne Javascirpt. Weil immer diese Javascriptalerts ausgegeben werden. Das ist doch ein Mischmasch dann, den keiner will ;-)
Gruß Steffi
hi georg,
thx mal für den tipp :-)
warum ich da nicht geguckt habe? weil ich 1. nicht genau wusste was ich suchen muss und 2. diese doku für anfänger teilweise ein buch mit sieben siegel ist. aber dank deines hinweises habe ich mich jetzt mal mit errorcheck auseinander gesetzt und an den anfang meines html-templates folgende zeilen geschrieben, um eine korrektheit der email-adresse zu prüfen:
plugin.tx_thmailformplus_pi1.fieldConf.email.errorCheck = email
plugin.tx_thmailformplus_pi1.fieldConf.email.errorText = <li>E-Mail Adresse nicht gültig</li>
auch diese schreibweise:
plugin.tx_thmailformplus_pi1.fieldConf {
email {
errorCheck = email
errorText = <li>E-Mail Adresse nicht gültig</li>
}
plz {
errorCheck = integer
errorText = <li>Postleitzahl nicht korrekt</li>
}
}
funktioniert leider nicht :-/.
ich habe das demoformular getestet, da ist ja auch die email-prüfung drin, aber das funktioniert genauso wenig. ich kann sonst was ins email-feld reinschreiben, das geht einfach durch. muss ich per regex die regeln der prüfung selbst schreiben?
weiterhin bleibt mir aber schleierhaft, wie ich abhängigkeiten prüfen kann. wenn im feld a was eingetragen wurde, muss in feld b und c auch was erfasst werden.
da bräuchte ich wirklich etwas hilfe.
danke und viele grüße - mimii
Deine Anweisungen sind korrekt. hast Du auch die Version >=3.9.0 am Start ?
Abhängigkeiten wird nicht gehen, da müsste man schon etwas programmieren.
japp. 3.9.0.
die anweisungen stehen direkt am anfang des html templates. ich habe das mal analog zu dem demoformular gemacht. lustig: das funzt auch nicht. könnte dann letztendlich ne berechtigung oder sonst was beim provider fehlen?
gruß Steffi
Hi Steffi,
mimii schrieb
die anweisungen stehen direkt am anfang des html templates.
das muss aber ins ext-Template, ist doch Typoscript 😉
Ok danke, werde ich mal versuchen. Ich dachte ich könnte das mitgelieferte Demo-Template einfach so verweden. Anfänger halt *gg*
OKOK, es funktioniert. Ein Problem jetzt noch. Wenn die Fehlermeldungen ausgegeben werden, z.B. "Straße fehlt", "Ort fehlt" wird das komplette Formular wieder geleert. Alles was ich vorher eingetagen hatte, wie Anrede, Name, email, etc. ist beim Erscheinen der Fehlermeldungen über dem Formular wieder weg. Man muss quasi von vorne anfangen die Daten einzugeben.
Das ist doch nicht normal? Wie kann ich das einstellen, dass die bisherigen Eingaben erhalten bleiben?
Many THX - Steffi
So das oben beschriebene Problem habe ich gelöst, da waren einfach die Marker falsch.
Das TS funktioniert und die Felder werden auf email, required, integer und sogar reg Expressions gepürft :-)
Jeztt nur noch das und da bräuchte ich Programmierhilfe bitte:
<fieldset class="htmlform">
<legend class="htmlform">Rechnungsanschrift entspricht der Lieferanschrift:</legend>
<p><label class="htmlform" for="Re_ist_Li">Ja</label><input type="radio" name="Re_ist_Li" value="Ja" checked="checked" ###checked_Re_ist_Li_Ja### /></p>
<p><label class="htmlform" for="Re_ist_Li">Nein</label><input type="radio" name="Re_ist_Li" value="Nein" ###checked_Re_ist_Li_Nein### /></p>
<p class="htmltext">Falls <b>nein</b> bitte nachfolgende Felder ausfüllen:</p>
<p><label class="htmlform" for="Vorname_Re">*Vorname</label><input name="Vorname_Re" value="###value_Vorname_Re###" size="30" type="text" /></p>
<p><label class="htmlform" for="Nachname_Re">*Nachnaame</label><input name="Nachname_Re" value="###value_Nachname_Re###" size="30" type="text" /></p>
<p><label class="htmlform" for="Strasse_Re">*Straße</label><input name="Strasse_Re" value="###value_Strasse_Re###" size="30" type="text" /></p>
<p><label class="htmlform" for="PLZ_Re">*PLZ/Ort</label><input name="PLZ_Re" value="###value_PLZ_Re###" size="6" type="text" /> <input name="Ort_Re" value="###value_Ort_Re###" size="30" type="text" /></p>
</fieldset>
Kurz zur Erklärung: Normalerweise ist die Rechnungsadresse die Lieferadresse, daher ist auch "Ja" vorselektiert. Weicht die RE-Adresse nun von der LI-Adresse ab, dann klickt der Benutzer den Radio "Nein" an. Klar soweit. Vergisst er nun die Daten der LI-Adresse einzugeben, sollte das beim Absenden des Formulars gemeldet werden.
Mit required geht das ja nicht. Ich bräuchte sowas wie required in Abhängigkeit mit dem "Nein".
Danke für etwas Hilfe.
Gruß Steffi
OKOK Kommando zurück. Es geht doch wenn man die Doku endlich mal verstanden hat ;-) und zwar mit .email_requiredfields.
*uff* geschafft.
Danke nochmals an alle die mir hier geholfen und mich auf den richtigen Weg gebracht haben.
Gruß Steffi
Noch eine Frage zu diesem Thema: Ist es möglich, zu verschiedenen Fehlerbedingungen auch verschiedene Messages anzuzeigen?
z.B. für errorCheck:required "E-Mail-Adresse fehlt" und bei falscher Eingabe errorCheck: email "Ungültige E-Mail-Adresse".
Nachdem in TS ja alles überschrieben wird, wenn man zwei Zuweisungen zum selben Objekt macht, kommt ja logischerweise immer nur die zuletzt angegebene Message. Kann man das irgendwie umgehen?
Gruß
Angela
Hi Rush,
ist es das was du meinst?
plugin.tx_thmailformplus_pi1.fieldConf {
Vorname {
errorCheck = required
errorText = <li>Bitte Vorname nicht eingeben</li>
}
Nachname {
errorCheck = required
errorText = <li>Bitte Nachname eingegeben</li>
}
email {
errorCheck = required,email
errorText = <li>E-Mail Adresse fehlt oder falsch eingegeben</li>
}
......
Gruß mimii
Hi Mimii,
Ja, das ist natürlich auch eine Lösung. Ich meinte zwar eigentlich zwei verschiedene Fehlermeldungen, aber mit einer geht's ja auch. Danke für den Tipp!
Gruß
Angela
Hallo mimii,
ich bin neu hier im Forum und für mich stellt sich auch die Frage mit der Lieferanschrift, aber leider bin aus der Doku nicht so schlau geworden. Könntest du mir diesbezüglich vielleicht auf die Sprünge helfen.
mimii schrieb
OKOK Kommando zurück. Es geht doch wenn man die Doku endlich mal verstanden hat ;-) und zwar mit .email_requiredfields.
*uff* geschafft.
Danke nochmals an alle die mir hier geholfen und mich auf den richtigen Weg gebracht haben.
Gruß Steffi
Gruß
Frank