contao / core

Contao 3 → see contao/contao for Contao 4
GNU Lesser General Public License v3.0
490 stars 213 forks source link

HTML5-Validation-Error: Bad value for attribute action on element form: Must be non-empty. #3997

Closed Creasign closed 12 years ago

Creasign commented 12 years ago

Dies wurde bei mir (Version 2.10.4) hervor gerufen, weil das action-Attribut des Form-Tags (an diversen Stellen) leer blieb. Warum es leer ist, ist mir nicht klar. Ich habe es jedenfalls behoben in dem ich in diversen Templates den Code ersetzt habe.

form action="<?php echo $this->action; ?>" id="tl_login" method="post"

wurde zu ...

form <?php /* CREASIGN Edit: leeres Attribut ausblenden, sonst nicht valid: */ if ($this->action) : ?>action="<?php echo $this->action; ?>" <?php endif; ?>id="tl_login" method="post">

Ich habe das W3C-Markup Validation Service verwendet.

leofeyer commented 12 years ago

Du sprichst vom Frontend? Leer kann das Attribut ja eigentlich nur auf der Startseite sein, die über die leere URL aufgerufen wird. Bei Unterseiten ist ja immer ein Alias vorhanden, das auch als Action verwendet wird.

Creasign commented 12 years ago

Hallöchen,

ja ich spreche von diversen Frontendformularen (Mitgliederregistrierung, Newsletter-Anmeldung, etc.), welche permanent aufscheinen. Da war in 2.10.4, wie jetzt auch in 2.11 das action-Attribut von form leer. Dies führte zu einer Fehlermeldung im HTML5-Validator. Es ist richtig, das action-Attribut fehlt nur auf der Startseite, ist mir noch gar nicht aufgefallen.

Zu sehen unter: http://www.creasign.net/wienerwandern/ (Alpha-Version)

Auf der Startseite wird nun (über eine if-Schleife in den Templates) das action-Attribut ausgeblendet, wenn es leer ist.

Ich hatte dann noch ein Problem, allerdings nicht gemeldet, da vermutlich die Konstellation selten auftritt. Passwort vergessen und Benutzer registrieren werden bei mir über einen Link und Lightbox geöffnet. In beiden Formularen gab es die css-ID "ctrl_mail". Dies führte natürlich auch zu einer Fehlermeldung beim Validieren. Wenn du Interesse hast, auch bei der CSS3-Validierung gab es Probleme ...

Danke für Deine E-Mail, konnte Sie erst leider jetzt beantworten. Generell bin ich über Contao sehr begeistert und ich hoffe, ich konnte so einen kleinen Beitrag leisten.

Mit freundlichen Grüßen, Morgenbesser Michael.

discordier commented 12 years ago

ob nun lightbox oder nicht, das ist ja ziemlich bums. Der ctrl name wird dennoch bei beiden gleich sein und bleiben und somit ist die id nicht mehr eindeutig. Ggf. muss man diese mit der modul-id suffixen oder aehnliches.

Im Catalog hatte ich das Problem bislang immer mit den lightboxen. Beim FilterModul habe ich das Problem vermutlich auch noch und ich denke dass dies allgemein so ziemlich jede Extension haben wird, welche Formulare verwendet (inkl. des Formular-Generators, wenn dieser auf einer Seite mehrere Formulare mit gleichnamigen Feldern anzeigen wird).

Die Frage hierbei ist nun, ob man da allgemein was tun muss, oder ob man da die Aufgabe nicht auf den Webdesigne abwaelzt, dass wenn er diese Situation herbeifuehrt, diese auch wieder aufloesen muss. Besonders hinsichtlich der Tatsache, dass wir durch Aenderung der ids allgemein inkompatibel zu allen bisherigen releases werden.

leofeyer commented 12 years ago

Unterstützen denn alle Browser das Weglassen des "action"-Attributes? Vor allem der IE 7/8?

Creasign commented 12 years ago

Hallo Leo, wenn Du mit unterstützen meinst, ob es noch immer funktioniert, dann ja. Getestet habe ich es mit den aktuellen Varianten von Firefox, Chrome, Safari, IE9 (64Bit) auf Windows 7 und IE8 auf XP. IE7 habe ich mit IE8 nur simuliert. Mit dem Android-Browser habe ich es ebenfalls getestet. Nicht testen kann ich es für iPad und Co.

Ich denke eine elegantere Lösung wäre es wohl, wenn das Attribut auf der Startseite nicht leer bliebe.

@Discordier: Grundsätzlich hast Du damit recht, dass die Anwender oder Modul-Entwickler die Probleme, die sie verursachen, selber lösen sollten (betreffend doppelter ID). Die von mir genannten Module sind aber Bestandteil der Standardinstallation, somit muss man damit rechnen, dass alle Module auch nebeneinander verwendet werden. ;) Wobei meine Konfiguration sicher seltener auftritt.

leofeyer commented 12 years ago

Behoben in 75abafba6eda984e0e6c9a0300e5054b33a19e40.