markAsInvalid()

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
Antworten
Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

markAsInvalid()

Beitrag von dave » 04.03.2011, 20:42:48

HiHo,

ich möchte ein Formularelement aus dem Controller heraus als invalid kennzeichnen. Dafür gibt es ja die form_control Methode markAsInvalid.

Setzt diese nun das Form einfach auf invalide oder auch die Formularelemente an sich, sodass diese entsprechend rot gekennzeiochnet werden müssten?


Ich habe im Moment das Problem, dass mein Form zwar als invalide gesetzt wird, meine Elemente müsste ich aber manuell rot kennzeichnen.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: markAsInvalid()

Beitrag von Screeze » 04.03.2011, 20:45:19

Das habe ich ebenfalls festgestellt vor ein paar Tagen, und deshalb diesen Featurewunsch gestartet, der aber noch nicht implementiert ist, soll aber in 1.14 kommen.
viewtopic.php?f=10&t=601

Momentan kannst du dir behelfen indem du die genannte Methode in deinen Controller kopierst, und als 1. parameter das formular element, und als 2. parameter den name der error-klasse ("apf-form-error" per default) übergibst.

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

Re: markAsInvalid()

Beitrag von dave » 04.03.2011, 20:52:22

Jo, wie ich das manuell hinbekomme, weiss ich. Habe ich ja vorher auch schon die ganze Zeit gemacht, bis mir das mit dem CSS klarer wurde.

Und die AppendCssClass() ist dann Inhalt der form_control.php?

Habe mir eben auch mal die Funktion im form_control.php angeschaut. Und da wird einfach nix weiter hinzugefügt, das wird einfach auf invalide gesetzt und fertig. Mit ein wenig Geduld hätte ich mir die Frage also sparen können.

Mir ist dabei auch aufgefallen, dass es ein paar Sachen gibt, die nicht in der Doku erwähnt werden!?

Beispiele:

Code: Alles auswählen

      public function disable(){
         $this->setAttribute('disabled','disabled');
      }


Code: Alles auswählen

      public function enable(){
         $this->deleteAttribute('disabled');
      }

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: markAsInvalid()

Beitrag von Screeze » 04.03.2011, 20:56:13

Das ist Möglich, weis ich jetzt nicht genau.
Moderne IDEs zeigen dir die Funktionen aber im Autocomplete an, und hier gibts auch eine API-Doku, wo ALLES dokumentiert ist:
http://files.adventure-php-framework.or ... index.html

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

Re: markAsInvalid()

Beitrag von dave » 04.03.2011, 21:01:17

Jo, in der API Doku war ich ja auch! Nur die Codebeispiele sind mir da immer etwas sehr kurz ^^. Aber schöne Bildchen mit den Beziehungen :roll: 8-)

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

Re: markAsInvalid()

Beitrag von dr.e. » 06.03.2011, 15:03:32

Hallo Jungs,

1.14 wird die CSS-Methode haben, der Rest lässt sich mit markAsInvalid() auf dem entsprechenden Formular-Element regelt. Das ist bisher noch nicht "offen" gewesen, weil Validierungen eigentlich Aufgabe eines Validators sind. Aber mit 1.14 ist auch das möglich.

Vorteil eines Validators ist, dass du diesen wiederverwenden kannst. Controller-Code ist zwar auch wiederverwendbar, aber eben nicht so schön.
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast