[1.15] Formulare: getValue() und disable="disabled"

Im Entwickler-Forum können Implementierungsdetails sowie Alternativen der Umsetzung diskutiert werden. // Here, developers can discuss implementation details of features of their projects.
Antworten
Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

[1.15] Formulare: getValue() und disable="disabled"

Beitrag von dave » 23.09.2012, 15:41:03

Hi zusammen,

mir ist gerade aufgefallen, dass ich den Value eines Eingabeformulares eines deaktivierten Feldes nicht erhalte.

Via Controller wird ein Feld über die Methode disable() deaktiviert, damit ein Nutzer keine Änderungen daran vornehmen kann, aber weiss, um was es sich gerade handelt. Über jQuery wird das Feld dynamisch mit einem Value versehen, der auch sichtbar ist. Wird das Formular abgesendet, ist der Value dieses deaktivierten Eingabefeldes nicht verfügbar. Nehme ich das disable() nun heraus, klappt es einwandfrei.

Ist das so gewollt?

Ich habe das ganze erstmal umgangen, indem ich ein Hiddenfeld mit dem Value belege und dieses dann via Controller auswerte.

Benutzeravatar
jwlighting
Beiträge: 466
Registriert: 14.07.2010, 14:23:58
Wohnort: LK Oldenburg
Kontaktdaten:

Re: [1.15] Formulare: getValue() und disable="disabled"

Beitrag von jwlighting » 23.09.2012, 16:50:53

Hallo dave,

wird der mittels jQuery gesetzte Wert denn überhaupt mitgesendet? Ich könnte mir auch gut vorstellen, dass der Browser Veränderungen bei deaktivierten Feldern einfach nicht beim zusammenbauen des Request berücksichtigt und nur die Werte aus dem vorherigen Response nimmt.

LG :)

Menschen irren - Politiker sind Menschen.
Für den Norddeutschen ist 1kW = 2 Pfund Schlick.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [1.15] Formulare: getValue() und disable="disabled"

Beitrag von dr.e. » 23.09.2012, 23:02:06

Hallo dave,

nach kurzer Debug-Session sendet der Browser den Wert des Feldes nicht im Request mit. Dementsprechend kann das presetting nicht funktionieren - auch nicht durch Änderung des Wertes per JS. In meinem Test hatte ich einem deaktivierten Feld den Wert "foo" im Template gegeben und den Wert "bar" per JS injiziert. Ergebnis: "foo".

Was funktioniert ist das Feld auf readonly zu setzen und evtl. per CSS eine entsprechende Anmutung zu geben. Dann sendet der Browser den Wert auch mit.
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [1.15] Formulare: getValue() und disable="disabled"

Beitrag von dave » 24.09.2012, 09:42:32

Ah, Ok, das wusste ich nicht, dass der Browser so intelligent agiert und deaktivierte Felder gar nicht erst sendet. readonly werde ich nochmal ausprobieren.

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [1.15] Formulare: getValue() und disable="disabled"

Beitrag von dave » 25.09.2012, 11:33:58

setReadOnly funktioniert in der Tat. Einzig die Farbe des Textes muss via CSS noch etwas angepasst werden, wie du es bereits erwähnt hattest. Aber das ist nicht das Problem.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [1.15] Formulare: getValue() und disable="disabled"

Beitrag von dr.e. » 25.09.2012, 17:59:26

Sehr schön! :)
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast