Ich habe etwas Überraschendes entdeckt:
%Vor% Wenn Sie dies in Firefox 4.0.1 versuchen, wird durch Klicken auf "Löschen" die Texteingabe immer auf 5
zurückgesetzt, aber setzt das verborgene Feld nie zurück .
Ich (und andere) haben dieses Verhalten überhaupt nicht erwartet: Wir haben erwartet, dass auch der versteckte Wert zurückgesetzt wird!
Kann jemand auf Dokumentation oder Spezifikationen verweisen, die erklären, warum die verborgene Eingabe durch die Reset-Schaltfläche anders behandelt wird?
Erklärungen, warum solch ein Verhalten wünschenswert ist, sind ebenfalls willkommen.
FWIW, ich denke, ich kann die ganze Geschichte aus den Antworten und Kommentaren zusammenstellen.
Verwendungszweck: Die Schaltfläche "Löschen" dient zum Löschen von Benutzereingaben. Da versteckte Eingaben dem Benutzer nicht direkt zugänglich sind, ist es nicht sinnvoll, dem Benutzer das Zurücksetzen der verborgenen Eingaben zu erlauben Wert.
Dokumentation und Verhalten:
Der Fehlerbericht , auf den AR hingewiesen hat, ist explizit, was passiert: Die% des versteckten Feldes Der Modus von co_de% ist Standard , wie in < a href="http://www.w3.org/TR/html5/forms.html#hidden-state-%28type=hidden%29"> Spezifikationen .
Das bedeutet insbesondere, dass die Änderung des Werts (wie im Beispielcode in der Frage) den Standardwert ändert, und die Schaltfläche "Zurücksetzen" setzt Eingabefelder auf den Standardwert zurück, sodass keine Änderung erfolgt.
Das Verhalten für die Texteingabe ist unterschiedlich (auch wenn der Wert programmgesteuert geändert wird), da der Modus value
nicht standardmäßig ist, sondern value , was bedeutet, dass zwischen dem Standardwert der Eingabe und dem aktuellen Wert unterschieden wird.
Der Benutzer kann das verborgene Feld nicht sehen oder ändern, daher würde es keinen Sinn machen, es durch einen Knopfdruck löschen zu können.
Wenn Sie auf Zurücksetzen klicken, geht der Browser und überprüft den Standardwert in der DOM-Struktur, nicht in der HTML-Seite.
Ihr Javascript ändert das DOM. Sie sollten versuchen, Ihre RESET-Schaltfläche durch eine benutzerdefinierte Schaltfläche zu ersetzen, die ein Javascript aufruft, das zwei Dinge tut:
5
. Tags und Links html forms hidden-field reset