POST-Werte von deaktivierten Formularelementen

7

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%     
bikey77 18.10.2011, 10:17
quelle

4 Antworten

23

Nun, es gibt 3 Lösungen, die ich mir vorstellen kann:

  • Machen Sie readonly , indem Sie dem Element die Eigenschaft readonly hinzufügen.
  • deaktiviere sie in CSS / JavaScript. Farbe wie es ist deaktiviert, und nicht mit JavaScript zu bearbeiten,
  • Lassen Sie es deaktiviert und entfernen Sie das deaktivierte Objekt beim Senden.

Treffen Sie Ihre Wahl:)

    
Madara Uchiha 18.10.2011, 10:21
quelle
6

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 einige andere Unterschiede bestehen deaktiviert, was zu anderen Problemen für Sie führen könnte:

  

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.
  •   
    
oezi 18.10.2011 10:20
quelle
2

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.

    
Your Common Sense 18.10.2011 10:25
quelle
0

Sie könnten "read-only" statt "disabled" verwenden, was den gewünschten Effekt haben sollte

Sie können Javascript auch verwenden, um Ihr Formular zu senden und die verschiedenen Felder zu deaktivieren (aktivieren: P)?

    
Nanne 18.10.2011 10:20
quelle

Tags und Links