TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

formhandler - multistep - validierung und conditions in einem step


Autor Nachricht
Verfasst am: 03. 05. 2012 [16:47]
powered by typo3
Themenersteller
Dabei seit: 09.02.2008
Beiträge: 16
ich validiere in einem multistep-Formular in step2 mehrere check-boxen (ja/nein) als required. Wurde entweder ja oder nein ausgewählt, wird über conditions das "required" ausgeschaltet. Es erscheint richtigerweise auch keine Fehlermeldung.

Vergisst nun ein User bei einer der checkboxen einen Haken bei "ja" oder "nein" zu setzen, erscheint folgerichtig an dieser Stelle eine Fehlermeldung. Setzt der User dann sein Häkchen und schickt das Formular ab, werden alle anderen check-boxen (bei denen bereits ein Haken gesetzt war) validiert und mit Fehlermeldungen versehen.

Dabei bleiben alle gesetzen Haken im Formular vorhanden, nur die conditions werden offenbar nicht mehr beachtet. (wenn "ja" angekreuzt ist, validiere "nein" nicht mehr und umgekehrt).

TYPOSCRIPT
# The error checks for the second step
	2.validators {
		1.class = Validator_Default
		1.config.fieldConf {	
			pferd.errorCheck.1 = required
			pferdchen.errorCheck.1 = required
			aufzuchtpferd.errorCheck.1 = required
			gnadenbrotpferd.errorCheck.1 = required
			zuchtpferd.errorCheck.1 = required   
  	                esel.errorCheck.1 = required
 
			phone.errorCheck.1 = required
			email.errorCheck.1 = required
			email.errorCheck.2 = email
			mathguard_answer.errorCheck.1 = mathGuard
			pferdename.errorCheck.1 = required
			pferderasse.errorCheck.1 = required
			pferdegebdatum.errorCheck.1 = required
			pferdefarbe.errorCheck.1 = required	
 
			hengst.errorCheck.1 = required
			wallach.errorCheck.1 = required
		        stute.errorCheck.1 = required	
 
		}
	}
 
if {
    2 {
      conditions.OR1.AND1 = pferd = ja
      isTrue {
        # step 2
        2 {
          2.validators.1.config.disableErrorCheckFields = pferdchen,aufzuchtpferd,gnadenbrotpferd,zuchtpferd,esel
        }
      }
    }
}
 
if {
    3 {
      conditions.OR1.AND1 = pferdchen = ja
      isTrue {
        # step 2
        2 {
          2.validators.1.config.disableErrorCheckFields = pferd,aufzuchtpferd,gnadenbrotpferd,zuchtpferd,esel
        }
      }
    }
}
if {
    4 {
      conditions.OR1.AND1 = aufzuchtpferd = ja
      isTrue {
        # step 2
        2 {
          2.validators.1.config.disableErrorCheckFields = pferd,pferdchen,gnadenbrotpferd,zuchtpferd,esel
        }
      }
    }
}
if {
    5 {
      conditions.OR1.AND1 = gnadenbrotpferd = ja
      isTrue {
        # step 2
        2 {
          2.validators.1.config.disableErrorCheckFields = pferd,pferdchen,aufzuchtpferd,zuchtpferd,esel
        }
      }
    }
}
if {
    6 {
      conditions.OR1.AND1 = zuchtpferd = ja
      isTrue {
        # step 2
        2 {
          2.validators.1.config.disableErrorCheckFields = pferd,pferdchen,aufzuchtpferd,gnadenbrotpferd,esel
        }
      }
    }
}
if {
    7 {
      conditions.OR1.AND1 = esel = ja
      isTrue {
        # step 2
        2 {
          2.validators.1.config.disableErrorCheckFields = pferd,pferdchen,aufzuchtpferd,gnadenbrotpferd,zuchtpferd
        }
      }
    }
}
 if {
    8 {
      conditions.OR1.AND1 = tiergeschlecht = wallach
      isTrue {
        # step 2
        2 {
          2.validators.1.config.disableErrorCheckFields = hengst,stute
        }
      }
    }
 }
 if {
    9 {
      conditions.OR1.AND1 = tiergeschlecht = hengst
      isTrue {
        # step 2
        2 {
          2.validators.1.config.disableErrorCheckFields = wallach,stute
        }
      }
    }
 }
 if {
    10 {
      conditions.OR1.AND1 = tiergeschlecht = stute
      isTrue {
        # step 2
        2 {
          2.validators.1.config.disableErrorCheckFields = hengst,wallach
        }
      }
    }
 }


if 2 bis 7 sind in einem fieldset zusammengefasst, if 8 - 10 in einem weiteren fieldset.

ProfilWWW
Verfasst am: 04. 05. 2012 [16:26]
powered by typo3
Themenersteller
Dabei seit: 09.02.2008
Beiträge: 16
Habe mittlerweile die Lösung selbst gefunden.

So wie ich das verstanden habe, muss jeder checkbox einen separate Klasse für die Validierung zugewiesen werden.
TYPOSCRIPT
2.validators {
		1.class = Validator_Default
		1.config.fieldConf {	
			pferd.errorCheck.1 = required
                        }
 
		2.class = Validator_Default
		2.config.fieldConf {	
			hengst.errorCheck.1 = required
			wallach.errorCheck.1 = required
		        stute.errorCheck.1 = required	
                	}
               }

2.validators - die 2 steht für step 2 im multistepformular.

Ausserdem habe ich auf typo3-formhandler.com in der Doku "General Options" noch das hier gefunden:

.checkBoxFields

Comma seperated list of field names which contain checkbox values. This is needed for multipage forms in order to ensure correct submission of these values from step to step. Please enter all checkbox field names in here. Set this option per step.

TYPOSCRIPT
plugin.Tx_Formhandler.settings {
 
  # Checkbox fields in step 1
  1.checkBoxFields = interests, hobbies
 
  # Checkbox fields in step 2
  2.checkBoxFields = work_experience,accounts
}
ProfilWWW