Ich habe zwei Seiten mit HTML-Formularen. Die erste Seite hat ein Einreichungsformular und die zweite Seite hat ein Bestätigungsformular. Das erste Formular bietet eine Auswahl vieler Steuerelemente, während auf der zweiten Seite die Daten aus dem Übermittlungsformular erneut mit einer Bestätigungsnachricht angezeigt werden. In diesem zweiten Formular müssen alle Felder statisch sein.
Soweit ich sehen kann, können einige Formularsteuerelemente sein readonly
und alle können es sein disabled
, mit dem Unterschied, dass Sie immer noch zu einem schreibgeschützten Feld wechseln können.
Gibt es eine Möglichkeit, das gesamte Formular als schreibgeschützt / deaktiviert / statisch zu markieren, anstatt es Feld für Feld auszuführen, sodass der Benutzer keines der Steuerelemente ändern kann?
Nicht alle Formularelemente können festgelegt werden
readonly
, zum Beispiel:Dann wäre die vernünftige Lösung, die
disabled
Attribute aller Formularelemente auf zu setzentrue
, da das OP nicht angegeben hat, dass das spezifische "gesperrte" Formular an den Server gesendet werden soll (was dasdisabled
Attribut nicht zulässt).Eine andere Lösung, die in der folgenden Demo vorgestellt wird, besteht darin, eine Ebene über dem
form
Element zu platzieren, die jegliche Interaktion mit allen Elementen innerhalb desform
Elements verhindert, da diese Ebene mit einer größeren Ebene festgelegt istz-index
Wert festgelegt ist:DEMO:
quelle
Mit dieser Funktion können Sie das Formular deaktivieren:
Sehen Sie hier die Arbeitsdemo
Beachten Sie, dass jQuery verwendet wird.
quelle
Fügen Sie den Inhalt auf der Bestätigungsseite nicht in bearbeitbare Steuerelemente ein, sondern schreiben Sie ihn einfach auf die Seite.
quelle
Ich kenne keine integrierte Methode, um dies zu tun. Je nachdem, wie kompliziert Ihr Formular ist, müssen Sie eine benutzerdefinierte Lösung finden. Sie sollten diesen Beitrag lesen:
HTML-Formulare in schreibgeschützte konvertieren ( Update : defekter Post-Link, archivierter Link )
BEARBEITEN: Warum sind Sie aufgrund Ihres Updates so besorgt, dass es schreibgeschützt ist? Sie können dies clientseitig tun. Andernfalls müssen Sie jedem Steuerelement das erforderliche Tag hinzufügen oder die Daten konvertieren und als Rohtext ohne Steuerelemente anzeigen. Wenn Sie versuchen, es schreibgeschützt zu machen, damit der nächste Beitrag nicht geändert wird, haben Sie ein Problem, da jeder mit dem Beitrag herumspielen kann, um das zu produzieren, was er will. Wenn Sie also tatsächlich die Daten erhalten, sollten Sie sie besser überprüfen erneut, um sicherzustellen, dass es gültig ist.
quelle
Es gibt keine vollständig konforme, offizielle HTML-Methode, aber ein wenig Javascript kann viel bewirken. Ein weiteres Problem besteht darin, dass deaktivierte Felder in den POST-Daten nicht angezeigt werden
quelle
Dies ist eine ideale Lösung zum Deaktivieren aller Eingaben , Textbereiche , Auswahlen und Schaltflächen in einem bestimmten Element.
Für jQuery 1.6 und höher :
Oder
jQuery 1.5 und niedriger :
Und
quelle
Eine andere einfache Möglichkeit, die von allen Browsern unterstützt wird, ist:
HTML:
CSS:
Beachten Sie jedoch, dass das Tabbing bei diesem Ansatz weiterhin funktioniert und die Elemente mit Fokus weiterhin vom Benutzer bearbeitet werden können.
quelle
Lassen Sie alle Formular-IDs nummerieren und führen Sie eine for-Schleife in JS aus.
quelle
Ich würde lieber jQuery verwenden:
find () würde bis zum n-ten verschachtelten Kind viel tiefer gehen als children (), das nur nach unmittelbaren Kindern sucht.
quelle
Einfachster Weg
quelle
Sie fügen dem Formular eine unsichtbare HTML-Ebene hinzu. Zum Beispiel
und Stil:
Natürlich kann der Benutzer diese Ebene im Webbrowser ausblenden.
quelle