Ist auf Formularen wirklich Maßnahmen erforderlich?
-
29-10-2019 - |
Frage
Hier steht, dass es erforderlich ist
http://www.w3schools.com/tags/att_form_action.asp
aber ich sehe, dass Formulare gesendet werden, auch wenn ich kein Aktionsattribut angegeben habe, und das Formular wird an die aktuelle Seite gesendet, was genau das ist, was ich möchte.
Lösung
Die Anforderung gilt nur für Standards .Es ist durchaus möglich, auf einer Seite zu tun, was immer Sie wollen, und nicht den Standards zu folgen.Wenn Sie dies tun, werden die Dinge möglicherweise nicht richtig angezeigt oder funktionieren nicht, aber wahrscheinlich werden sie es tun.Das Ziel ist es, ihnen zu folgen, und die Idee ist, dass Ihre Seite immer funktioniert, wenn Sie ihnen folgen.Sie müssen sich um nichts kümmern.
Ja, das Formular ist erforderlich , um ein Aktionsattribut in HTML4 zu haben.Wenn es nicht festgelegt ist, verwendet der Browser wahrscheinlich dieselbe Methode wie das Bereitstellen einer leeren Zeichenfolge.Sie sollten wirklich action=""
festlegen, der perfekt gültiges HTML4 ist, Standards folgt und genau das gleiche Ergebnis erzielt.
In HTML5 können Sie tatsächlich eine Aktion auf der Senden-Schaltfläche selbst angeben.Wenn es keine gibt, wird die Aktion des Formulars verwendet. Wenn diese nicht festgelegt ist, wird standardmäßig die leere Zeichenfolge verwendet (beachten Sie, dass Sie die Aktion in HTML5 nicht explizit auf eine leere Zeichenfolge festlegen können).
Andere Tipps
Wie von bazmegakapa erwähnt, ist die HTML5-Spezifikation scheint das action
-Attribut nicht zu erfordern :
Die Inhaltsattribute für Aktion und Formatierung, falls angegeben , müssen einen Wert haben, der eine gültige nicht leere URL ist, die möglicherweise von Leerzeichen umgeben ist. [Hervorhebung hinzugefügt]
Interessanterweise bedeutet dies, dass
<form action="">
in HTML5 nicht gültig ist, aber es ist nicht klar, ob ein Formular ohne Aktion erforderlich ist (an die aktuelle Seite senden).
Technisch gesehen ist dies eine Verletzung der HTML 4-Spezifikation, aber alle Browser senden an den Absender der Antwort zurück, wenn keine Aktion angegeben ist.Ich würde zustimmen, dass es keine kluge Idee ist, sich darauf zu verlassen, aber es funktioniert.
BEARBEITEN: Wie mir bereits mitgeteilt wurde, ist diese Frage als HTML 5: gekennzeichnet In HTML 5 wird das Aktionsattribut als nicht mehr erforderlich aufgeführt: http://www.w3schools.com/html5 / att_form_action.asp entspricht den HTML 5-Spezifikationen.
// Thread-Wiederbelebungsalarm
Um die Antwort von animuson zu erweitern ...
Wenn nach allen Attributen für die Schaltflächen formaction
und form action
bewertet wurde und "action" immer noch als "leere Zeichenfolge" ausgewertet wird, dann aus dem HTML5.2-Spezifikationsabschnitt 4.10.21.3 Punkt 8 besagt:
Wenn action die leere Zeichenfolge ist, sei action die URL des Dokuments von Formulardokument.
wenn es um das Einreichen des Formulars geht, was Sie wollten.