Ich habe ein Formular, in dem ich ein Array von Checkboxen und ein paar Felder deaktivieren muss, damit der Benutzer seine Werte nicht ändern / ändern kann. Wenn ich das Formular übergebe, fehlen die POST-Werte der deaktivierten Elemente / null. Wie kann ich verwalten, was ich ohne dieses Problem tun möchte?
Im Moment deaktiviere ich die Felder, indem ich das Container-Div wie folgt deaktiviere:
%Vor%Nun, es gibt 3 Lösungen, die ich mir vorstellen kann:
readonly
, indem Sie dem Element die Eigenschaft readonly
hinzufügen. Treffen Sie Ihre Wahl:)
Sie könnten readonly
anstelle von disabled
verwenden, was für den Benutzer fast identisch ist (kann nicht bearbeitet werden), aber die Werte von readonly
-elements werden gesendet, während disabled
nicht gesendet werden.
Beachten Sie, dass
Das deaktivierte Attribut
- Werte für deaktivierte Formularelemente werden nicht an die Prozessormethode übergeben. Das W3C nennt dies ein erfolgreiches Element. (Dies funktioniert ähnlich wie Formular-Kontrollkästchen, die nicht markiert sind.)
- Einige Browser können defekte Formularelemente überschreiben oder Standardstylings bereitstellen. (Gray out oder Prägetext) Internet Explorer 5.5 ist besonders böse darüber.
- Deaktivierte Formularelemente erhalten keinen Fokus.
- Deaktivierte Formularelemente werden in der Tab-Navigation übersprungen.
Das schreibgeschützte Attribut
- Nicht alle Formularelemente haben ein readonly-Attribut. Am bemerkenswertesten, die,, und Elemente haben nicht nur zu lesen Attribute (obwohl beide Attribute deaktiviert haben)
- Browser bieten keine standardmäßig überschriebene visuelle Rückmeldung, dass das Formularelement schreibgeschützt ist. (Dies kann ein Problem sein ... siehe unten.)
- Formularelemente mit dem Attributsatz readonly werden an den Formularprozessor übergeben.
- Schreibgeschützte Formularelemente können den Fokus erhalten
- Schreibgeschützte Formularelemente sind in der Navigation mit Tabs enthalten.
Es macht wenig Sinn, dieselben Daten hin und her zu senden.
Bleiben Sie einfach auf der Serverseite und verwenden Sie sie dann beim Senden.
Außerdem angenommen, dass
Benutzer können ihre Werte nicht ändern / ändern.
ist ziemlich albern.
Tags und Links php disabled-input