Heute ein interessantes Problem entdeckt.
Mit einem TYPO3-Mailform-Element lassen sich Formulare erzeugen. Dabei gibt man über einen Wizard- oder in einem Konfigurationsfeld die Felder an, die im Formular dargestellt werden sollen. Mit einem Sternchen vor dem Feld gibt man an, ob das Feld ein Pflichfeld ist. Wenn man das Formular dann absendet, wird ein Alert-Fenster angezeigt, mit der Meldung welche Felder noch ausgefüllt werden sollten.
Mein Formular sah in der Konfiguration etwa so aus:
Name *| *Name=input
Straße * | *Strasse=input
PLZ , Ort * | *PLZ_Ort=input
E-Mail *| *EMail=input
Telefon* | *Telefon=input
Beim Absenden stand in dem Fenster: „Bitte füllen Sie folgende Felder aus: Name *, Straße *, PLZ, EMail“. Das Feld heißt doch „PLZ, Ort“. Außerdem fehlen die Sternchen nach dem PLZ und E-Mail, und wo bleibt Telefon.
Mit einem Kollegen betrachteten wir die Funktion onSubmit im Formular genauer: Es wird die Funktion validateForm aufgerufen mit dem Namen des Formulars und eine kommaseparierten Liste von Feldern, die Pflicht sind. Dabei kommt jedes Feld zweimal vor – als Feld-Name und Label. In der Funktion wird die Liste aufgeteilt und Feld-Name und Label ausgewertet.
Dadurch, dass „PLZ, Ort“ ein Feldname ist, bringt das diese Rechnung total durcheinander und PLZ wird als Feldbezeichnung gewertet, „Ort *“ als Name des nächsten Feldes. Deswegen fehlen die Sternchen und die Rechnung geht nicht auf und das letze Feld fehlt.
Lösung: eigentlich keine, kein Komma im Label benutzen, sondern / oder so.
Das Komma kann als HTML-Entity …
& s b q u o ;
(ohne Leerzeichen zwischen den einzelnen Buchstaben)
… eingegeben werden.
Nachtrag: Mein Vorschlag funktioniert in der aktuellen TYPO3-Version nicht mehr, da das HTML-Entity in der Fehlermeldung für unausgefüllte Pflichtfelder leider auch in oben genannter Schreibweie im Fontend angezeigt wird ;-(
Neuer Vorschlag: das „einfaches, gekrümmtes Anführungszeichen unten“ sieht dem Komma sehr ähnlich: ‚