Anonymous
Not applicable

Validation bei unsichtbarem Feld entfernen

Jump to solution

Hallo,

ich habe eine Vorlage die wie folgt aussieht:

vp_highlight_form.png

Wenn beim der Radiobutton "Nur Bilder wechseln" gewählt ist, dann soll das Feld ein Pflichtfeld sein, wenn auf "Überschriften, Links ..." gewechselt wird, dann erscheint unter Basis ein anderer Inhalt (Viewportüberschrift erscheint nicht mehr). Die Fehlermeldung für die nicht gefüllte Überschrift bleibt aber und unterbindet ein Speichern. Ich vermute, dass die gesetzte Validation wieder "unsetten" muss, weis aber nicht wie.


Hier noch die Regel:

<ON_SAVE>

  <IF>

   <AND>

    <EQUAL>

     <PROPERTY source="#global" name="STORETYPE"/>

     <TEXT>pagestore</TEXT>

    </EQUAL>

    <!-- global property: INCLUDED -->

    <PROPERTY source="#global" name="TRANSLATED"/>

    <!-- /global property: INCLUDED -->   

   </AND>

  </IF>

  <WITH>

   <AND>

    <NOT>

     <EQUAL>

               <PROPERTY source="st_explore_switch_type" name="ENTRY"/>

               <TEXT>only_pictures</TEXT>

              </EQUAL>

    </NOT>

    <NOT>

     <PROPERTY source="st_headline" name="EMPTY"/>

    </NOT>

   </AND>

  </WITH>

  <DO>

   <VALIDATION>

    <PROPERTY source="st_headline" name="VALID"/>

    <MESSAGE lang="*" text="No content provided!"/>

    <MESSAGE lang="DE" text="Es wurde kein Inhalt erfasst!"/>

   </VALIDATION>

  </DO>

</ON_SAVE>

1 Solution

Accepted Solutions
StefanSchulz
I'm new here

Hallo,

wenn ich mich nicht täusche, sollte das kein AND sondern ein OR sein, damit deine Anforderung erfüllt ist.

Beste Grüße

Stefan

View solution in original post

0 Kudos
4 Replies
StefanSchulz
I'm new here

Hallo,

wenn ich mich nicht täusche, sollte das kein AND sondern ein OR sein, damit deine Anforderung erfüllt ist.

Beste Grüße

Stefan

0 Kudos
Anonymous
Not applicable

Danke für die schnelle Antwort. Mir ist nur nicht ganz klar wieso das mit dem OR hier funktioniert. Mit dem OR prüf ich doch jetzt eigentlich ob der richtige Radiobutton geklickt ist oder ob das Feld leer ist und wenn eins zutrifft kommt die Warnung. Wenn ich das Feld leer lasse und den falschen Button wähle wäre die Abfrage doch eigentlich immer noch wahr und die Meldung sollte trotzdem kommen.

0 Kudos

In der Regel wird der Validierungsstatus des Gadgets gesetzt, nicht der invalide Status. Am besten einfach immer auf schreiben, wann die Eingabe valide sein soll und dies dann in die Regel umsetzen.

Wäre hier für st_headline valide wenn:

1. Modus ist only_pictures, dann darf st_headline nicht leer sein.

2. Modus ist nicht only_pictures.

Also:

nicht(only_pictures)  oder  ( only_pictures und nicht(leer(st_headline)) ).

Lässt sich dann verkürzen auf

nicht(only_pictures)  oder  nicht(leer(st_headline)).

Alternativ:

nicht ( only_pictures und leer(st_headline) )

Beste Grüße

Stefan

mbergmann
Crownpeak employee

Hallo,

unabhängig von Stefans Antwort hat die Regel noch ein anderes kleines Problem das auftreten kann:

Das TRANSLATED wird im IF geprüft was dazu führen müsste, dass ein Entfernen des Übersetzt-Hakens bei vorher ungültigem Wert den Gültigkeitsstatus nicht wieder auf "gültig" setzt - was das angeht funktioniert die Regel quasi nur "in einer Richtung".

Hintergrund: Sobald das IF ein false ergibt wird die Regelausführung abgebrochen, dadurch wird sich der Gültigkeitsstatus bei nicht gesetztem TRANSLATED-Haken nicht ändern lassen, also auch nicht von ungültig auf gültig. Das fällt allerdings nur bei einer bestimmten Editier-Reihenfolge auf weil der "Startwert" erstmal "gültig" ist. Dadurch scheinen oft auch Regeln zu funktionieren die den Status nur auf "ungültig" setzen können.

Im IF sollten im Zusammenhang mit einer Validierung üblicherweise keine vom Redakteur änderbaren Werte bzw. Eigenschaften benutzt werden.

D.h. die TRANSLATED-Prüfung sollte mit in das WITH integriert werden.

Viele Grüße

MIchael