Ich möchte gerne Felder anzeigen lassen, wenn eine bestimmte Checkbox aktiviert ist. Dies kann man auch wunderbar für ein einzelndes Feld machen:
"displayCond" => "FIELD:eineCheckbox:REQ:true",
Jetzt wollte ich das ganze aber für eine MultipleCheckbox machen, aber wie spreche ich dann die einzelnen Checkboxen an?
Zwei Varianten die ich probiert habe funktionieren beide nicht:
"displayCond" => "FIELD:multipleCheckbox.0:REQ:true",
"displayCond" => "FIELD:multipleCheckbox_0:REQ:true",
Hat jemand Erfahrungen damit?
Mir würde ein kleines Beispiel reichen 😉
das ist doch sehr gut in den Docs beschrieben:
Part 2 is the evaluation type. These are the possible options:
REQ : Requires the field to have a "true" value. False values are "" (blank string) and 0 (zero) or if the field does not exist at all. All else is true.
For the REQ evaluation type Part3 of the rules string must be the string "true" or "false". If "true" then the rules returns "true" if the evaluation is true. If "false" then the rules returns "true" if the evaluation is false.
> / < / >= / <= : Evaluates if the field value is greater than, less than the value in "Part 3"
= / != : Evaluates if the field value is equal to value in "Part 3" (or not, if the negation flag, "!" is prefixed)
IN / !IN : Evaluates if the field value is in the comma list equal to value in "Part 3" (or not, if the negation flag, "!" is prefixed)
- / !- : Evaluates if the field value is in the range specified by value in "Part 3" ([min] - [max]) (or not, if the negation flag, "!" is prefixed)
in Deinem Fall also
"displayCond" => "FIELD:multipleCheckbox_0:>:0",
Das Problem ist, aber dass ich die einzelnen Checkboxen ansprechen möchte.
Wenn die Checkbox zwei aktiv ist, steht im Feld: 2
Wenn die Checkbox eins aktiv ist, steht im Feld: 1
Wenn beide aktiv sind, dann steht dort: 3
Sprich da müsste noch sowas hin, wie ne Rechenregle oder so...
aber genau das kannst Du doch mit der Abfrage >0 erreichen, trifft also zu, wenn mind. eine der Checkboxen angewählt ist. bei FIELD muss hald der Feldname rein.
Jupp, bei mindestens einem Feld passt das auch wunderbar.
Aber ich wollte das ganze etwas anders
TAB Allgemein
Name etc.
MultipleCheckbox(Aktiv1,Aktiv2)
TAB Aktiv1
Field1 (inkl. displayCond,required)
Field2 (inkl. displayCond)
TAB Aktiv2
Field1 (inkl. displayCond,required)
Field2 (inkl. displayCond)
Es bislang keine bedingten Required-Felder, was das ganze hinfällig machen würde...
Die Speicherung der MultipleCheckbox geschieht bitweise:
Checkbox1: 1
Checkbox2: 2
Checkbox3: 4
Checkbox4: 8
Checkbox5: 16
Checkbox6: 32
...
Checkbox 1,2,3 = true; Rest = false => Value := 7
Checkbox 1 = true; Rest = false => Value := 1
Checkbox 4 = true; Rest = false => Value := 8
usw.
Darum ja auch meine Frage, ob man die Checkboxen einzeln ansprechen kann...
Im anderen Forum :o wurde geschrieben, dass diese Boxen nicht einzeln angesprochen werden können.
Ein Problem bei T3 ist, dass man keine anderen Regeln zur Felderüberprüfung erstellen kann bzw. mit Eval kann man Felder manipulieren, aber nicht wirklich überprüfen ohne in die Core einzugreifen.
Habe jetzt erst mal meine Version gepatch, damit die User sehen, in welchem Tab ein Required-Field fehlt....
Mal schauen vielleicht setzte ich mich mal daran, aber JavaScript ist nicht meine Welt.
das geht nicht, da die displaycond auf das Datenbankfeld und nicht auf die gerenderten Eingabefelder reagiert.
Na gut dann muss ich doch einzelne Checkboxen nutzen.
Aber dafür habe ich gleich noch einen logischen Bug in nem Script gefunden (schon im Bugtracker)...