Ist es zulässig, ein HTML-Formular in einem anderen HTML-Formular zu haben?

Lesezeit: 6 Minuten

Ist es gültiges HTML, um Folgendes zu haben:

<form action="a">
    <input.../>
    <form action="b">
        <input.../>
        <input.../>
        <input.../>
    </form>
    <input.../>
</form>

Wenn Sie also “b” übermitteln, erhalten Sie nur die Felder innerhalb des inneren Formulars. Wenn Sie “a” einreichen, erhalten Sie alle Felder abzüglich derer innerhalb von “b”.

Wenn dies nicht möglich ist, welche Problemumgehungen für diese Situation sind verfügbar?

  • Es scheint mir, dass dies tatsächlich ein sehr häufiges Bedürfnis ist, das von DB-Schnittstellen bekannt ist — Wenn ein Formular Tabelle A aktualisiert und diese Tabelle ein Feld hat, das mit Tabelle B verknüpft ist, wollen wir oft eine Möglichkeit, Einträge dafür zu aktualisieren oder zu erstellen verknüpftes Feld, ohne das aktuelle Formular verlassen zu müssen. Verschachtelte Unterformulare wären eine sehr intuitive Möglichkeit, dies zu tun (und sind die Benutzeroberfläche, die von mehreren Desktop-Datenbanken implementiert wird).

    – Monotasker

    29. Februar 2012 um 19:38 Uhr

  • Es ist nicht gültig. Es gibt Problemumgehungen, aber Sie sollten eine andere Methode verwenden, um diese Daten zu erhalten. Stellen Sie sich ein Formular vor, das alle Daten an ein PHP-Mail-Skript sendet, das dann einen Teil (den Teil von a) als eine E-Mail und einen Teil (den Teil von b) als eine weitere E-Mail sendet. Oder in eine Datenbank oder was auch immer Sie mit diesen Daten machen. Verschachtelungsformen können durchgeführt werden, aber es ist NICHT die Antwort!

    Benutzer1596138

    16. Mai 2013 um 21:48 Uhr

  • mögliches Duplikat von Können Sie HTML-Formulare verschachteln?

    – Benutzer

    18. August 2014 um 22:25 Uhr

  • Die Frage ist gut, aber eine schnelle Google-Suche (ohne auf die bereitgestellten Links zu klicken) zeigt, ob Formulare innerhalb von Formularen gültig sind oder nicht. Ich persönlich mochte die Antwort von @Andreas.

    – Jarett Lloyd

    8. Mai 2019 um 15:33 Uhr

Ist es zulassig ein HTML Formular in einem anderen HTML Formular zu
GeneQ

A. Es ist weder gültiges HTML noch XHTML

In der offiziellen XHTML-Spezifikation des W3C, Abschnitt B. „Element Prohibitions“, heißt es:

“Formular darf keine anderen Formularelemente enthalten.”

http://www.w3.org/TR/xhtml1/#prohibitions

Was die Älteren betrifft HTML 3.2-Spezifikationheißt es im Abschnitt zum FORMS-Element:

“Jedes Formular muss in ein FORM-Element eingeschlossen werden. Es können mehrere Formulare in einem einzigen Dokument vorhanden sein, aber das FORM-Element kann nicht verschachtelt werden.”

B. Die Problemumgehung

Es gibt Problemumgehungen mit JavaScript, ohne dass Formular-Tags verschachtelt werden müssen.

“So erstellen Sie ein verschachteltes Formular.” (Trotz des Titels ist dies nicht verschachtelte Formular-Tags, aber ein JavaScript-Workaround).

Antworten auf diese StackOverflow-Frage

Notiz: Obwohl man die W3C-Validierer dazu bringen kann, eine Seite zu passieren, indem man das DOM per Skripting manipuliert, ist es immer noch kein legales HTML. Das Problem bei der Verwendung solcher Ansätze besteht darin, dass das Verhalten Ihres Codes jetzt nicht über Browser hinweg garantiert ist. (da es nicht Standard ist)

  • Siehe meinen Kommentar oben …. Dies ist eine wunderbare Antwort, eine großartige Problemumgehung, aber eine schreckliche Praxis. Sie können genau dasselbe mit weniger Aufwand tun, indem Sie alle Daten an ein PHP-Skript senden und von dort aus teilen und an ihre eigenen Ziele senden. Obwohl Sie die Frage beantwortet haben, was großartig ist, ist es nur eine schlechte und sinnlose Übung, weil Sie es in kürzerer Zeit richtig machen könnten.

    Benutzer1596138

    16. Mai 2013 um 21:51 Uhr

Ist es zulassig ein HTML Formular in einem anderen HTML Formular zu
Andreas

Falls jemand diesen Beitrag hier findet, ist eine großartige Lösung ohne die Notwendigkeit von JS. Verwenden Sie zwei Submit-Buttons mit unterschiedlichen Namensattributen Überprüfen Sie in Ihrer Serversprache, welcher Submit-Button gedrückt wurde, da nur einer von ihnen an den Server gesendet wird.

<form method="post" action="ServerFileToExecute.php">
    <input type="submit" name="save" value="Click here to save" />
    <input type="submit" name="delete" value="Click here to delete" />
</form>

Die Serverseite könnte in etwa so aussehen, wenn Sie PHP verwenden:

<?php
    if(isset($_POST['save']))
        echo "Stored!";
    else if(isset($_POST['delete']))
        echo "Deleted!";
    else
        echo "Action is missing!";
?>

  • Dies ist nicht dasselbe, in diesem Fall möchten Sie auf dieselbe Seite gehen und verschiedene Aktionen ausführen. Mit 2 Formularen können Sie auf verschiedene Seiten gehen und / ODER sich jeweils unterschiedliche Informationen senden lassen.

    – Luis Tellez

    10. März 2014 um 20:35 Uhr

  • Sie könnten eine PHP-Datei als Wrapper verwenden und jede gewünschte Datei einschließen, wenn Sie den Code in verschiedenen Dateien haben möchten. Anstelle von (echo “stored!”;) könntest du also schreiben (include “a.php”;)

    –Andreas

    27. Juni 2014 um 13:55 Uhr

  • Ich habe mehrere Löschschaltflächen in meinem Formular (der Grund, warum ich in Anbetracht eines verschachtelten Formulars hierher gekommen bin) 1 für jeden Datensatz und ein Listen-Kontrollkästchen für jeden, um eine Massenlöschung durchzuführen. Ihre Antwort hat mich dazu veranlasst, meinen Plan zu überdenken. Ich denke jetzt, dass ich die Schaltflächen für das einzelne Löschen mit einer numerischen ID und das Massenlöschen so benennen sollte. Ich mache PHP das Sortieren.

    – CodingInTheUK

    21. März 2015 um 18:01 Uhr

  • @Andreas ist auf dem Geld. Dies ist die natürliche Lösung, um zu variieren, wie Formulareingaben interpretiert werden. Wenn Sie Post/Redirect/Get verwenden, kann das Ziel ebenfalls variieren. Wenn Sie jedoch auf der Serverseite nicht die Flexibilität haben, Ihre Aktionen in einem einzigen „aORb“-Endpunkt zu kombinieren, dann stecken Sie, fürchte ich, mit einem Hack fest.

    Benutzer81962

    14. Februar 2016 um 22:31 Uhr


HTML 4.x und HTML5 verbieten verschachtelte Formulare, aber HTML5 ermöglicht eine Problemumgehung mit dem Attribut “form” (“Formularbesitzer”).

Bei HTML 4.x können Sie:

  1. Verwenden Sie ein oder mehrere zusätzliche Formulare mit nur ausgeblendeten Feldern und JavaScript, um die Eingaben festzulegen und das Formular abzusenden.
  2. Verwenden Sie CSS, um mehrere HTML-Formulare so anzuordnen, dass sie wie eine einzige Entität aussehen – aber ich denke, das ist zu schwierig.

  • Ich bin mir nicht sicher, warum dies abgelehnt wurde. Hier der Link zum W3C-Bereich der Formularbesitzer: w3.org/TR/html5/…

    – SooDesuNe

    9. Januar 2011 um 16:11 Uhr

  • @SooDesuNe dein Link ist veraltet, hier ist der neue w3.org/TR/html5/forms.html#form-owner

    – chiliNUSS

    12. Mai 2014 um 19:33 Uhr

Wie andere gesagt haben, ist es kein gültiges HTML.

Es hört sich so an, als würden Sie dies tun, um die Formulare visuell ineinander zu positionieren. Wenn das der Fall ist, erstellen Sie einfach zwei separate Formulare und verwenden Sie CSS, um sie zu positionieren.

1646253727 220 Ist es zulassig ein HTML Formular in einem anderen HTML Formular zu
David Grant

Nein, die HTML-Spezifikation besagt, dass nein FORM Element sollte ein anderes enthalten FORM Element.

1646253728 343 Ist es zulassig ein HTML Formular in einem anderen HTML Formular zu
Robin Manoli

Eine Möglichkeit besteht darin, einen Iframe innerhalb der äußeren Form zu haben. Das Iframe enthält das innere Formular. Verwenden Sie unbedingt die <base target="_parent" /> -Tag innerhalb des Head-Tags des Iframes, damit sich das Formular als Teil der Hauptseite verhält.

1646253728 755 Ist es zulassig ein HTML Formular in einem anderen HTML Formular zu
Christian Studer

Sie können Ihre eigene Frage sehr einfach beantworten, indem Sie den HTML-Code in die eingeben W3-Validator. (Es verfügt über ein Texteingabefeld, Sie müssen Ihren Code nicht einmal auf einem Server ablegen …)

(Und nein, es wird nicht validiert.)

915950cookie-checkIst es zulässig, ein HTML-Formular in einem anderen HTML-Formular zu haben?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy