webentwicklung-frage-antwort-db.com.de

Ist bei Formularen wirklich Handlungsbedarf?

Hier heißt es, es sei erforderlich

http://www.w3schools.com/tags/att_form_action.asp

ich sehe jedoch, dass Formulare auch dann übermittelt werden, wenn ich kein Aktionsattribut angegeben habe, und das Formular an die aktuelle Seite übergeben wird.

33
Alex

Die Anforderung ist nur nach Standards . Es ist durchaus möglich, auf einer Seite das zu tun, was Sie möchten, und nicht den Standards zu folgen. Dinge werden möglicherweise nicht richtig angezeigt, wenn Sie das tun, aber wahrscheinlich werden sie dies tun. Das Ziel ist, ihnen zu folgen, und die Idee ist, wenn Sie ihnen folgen, wird Ihre Seite immer funktionieren; Sie müssen sich um nichts kümmern.

Ja, das Formular ist erforderlich , um ein Aktionsattribut in HTML4 zu haben. Ist dies nicht der Fall, verwendet der Browser wahrscheinlich dieselbe Methode wie eine leere Zeichenfolge. Sie sollten wirklich action="" einstellen, der perfekt gültiges HTML4 ist, den Standards entspricht und das gleiche genaue Ergebnis erzielt.

In HTML5 können Sie tatsächlich eine Aktion für die Schaltfläche "Senden" angeben. Wenn dies nicht der Fall ist, wird die Aktion des Formulars verwendet. Wenn diese Option nicht festgelegt ist, wird standardmäßig die leere Zeichenfolge verwendet.

46
animuson

Es sieht aus wie die HTML4-Spezifikation erfordert es . Ich vermute, dass einige Browser das tun, was Sie "einfacher machen" wollen. Ich kann es jedoch nicht empfehlen, sich darauf zu verlassen. Da Sie sich in einem undefinierten Verhalten befinden, könnte ein Browser vernünftigerweise entscheiden, einfach nichts zu tun, wenn das Formular ohne action gesendet wird.

Sie können das gewünschte Verhalten erhalten, während Sie der Spezifikation folgen, indem Sie die Aktion leer lassen (da sie relativ ist, bedeutet leer die aktuelle Seite):

<form action="" ...>

Wie von bazmegakapa erwähnt, scheint die HTML5-Spezifikation das action-Attribut : nicht zu erfordern.

Die Inhaltsattribute action und formaction, wenn angegeben, müssen einen Wert haben, der eine gültige nicht leere URL ist, die möglicherweise von Leerzeichen umgeben ist.

Interessanterweise bedeutet dies in HTML5, dass <form action=""> nicht gültig ist, aber es ist nicht klar, ob ein Formular ohne Aktion erforderlich ist (Übergabe an die aktuelle Seite).

12
Brendan Long

Technisch gesehen stellt dies einen Verstoß gegen die HTML 4-Spezifikation dar. Wenn jedoch keine Aktion angegeben wird, werden alle Browser eine Rückmeldung an den Absender der Antwort senden. Ich würde zugeben, dass es keine kluge Idee ist, sich darauf zu verlassen, aber es funktioniert.

EDIT: Da mir darauf hingewiesen wurde, dass diese Frage als HTML 5 markiert ist: In HTML 5 wird das Aktionsattribut als nicht mehr benötigt aufgelistet: http://www.w3schools.com /html5/att_form_action.asp entspricht den HTML 5-Spezifikationen.

5
swannee

// Thread-Auferstehungsalarm

Um auf die Antwort von Animuson einzugehen ...

Wenn schließlich die Attribute der Schaltflächen formaction und action bewertet wurden, wird "action" weiterhin als "leer" ausgewertet string ", dann aus HTML5.2 spec section 4.10.21. Punkt 8 lautet:

Wenn action die leere Zeichenfolge ist, ist action die URL des Dokuments des Formulars.

wenn es um die Einreichung des Formulars geht, welches ist das, was Sie wollten.

2
Neil Moss