annick_querfeld
I'm new here

Formular Listenelement nur validieren wenn Liste visible ist

Hallo Zusammen,

ich habe ein Problem bzw eine Frage wo ich gerade nicht weiter komme.

Und zwar... ich habe ein Modul, in dem Formular gibt es bestimmte Eingabekomponenten die in Auswahl von Werten aus einem Dropdown ein oder ausgeblendet werden. Wenn eines dieser Elemente nun eine FS_LIST ist.. mit Modulen drin. Wie kann ich erreichen, dass die Validierung einzelner List Items nur anschlägt, wenn die Liste die sie enthält denn auch VISIBLE ist???

Denn sonst habe ich den Fall von einer FS_LIST die nicht sichtbar ist, aber die Validierung fehlschlägt weil Listenelemente required fields haben.

Wäre super wenn mir jemand weiterhelfen kann.
Danke, viele Grüße, Annick

0 Kudos
6 Replies
kohlbrecher
Crownpeak employee

Hallo Annick,

ich habe das Problem nicht ganz verstanden aber eventuell hilft es schon, die FS_LIST kurz sichtbar zu machen, einen default Wert zu setzen und dann die FS_LIST wieder auszublenden.

Sollte ich damit falsch liegen, müsstest du das Problem nochmal genauer beschreiben.

Grüße

Jan

0 Kudos

Hi,

wenn ich es richtig verstanden habe willst du eine FS_LIST nur validieren, wenn beispielsweise ein TOGGLE auf true gesetzt ist. Bei false nicht.

Hier ein Beispiel:

<CMS_MODULE>

  <CMS_INPUT_RADIOBUTTON name="ptToggle">

    <ENTRIES>

      <ENTRY value="true"/>

      <ENTRY value="false"/>

    </ENTRIES>

    <LANGINFOS>

      <LANGINFO lang="*" label="Toggle"/>

    </LANGINFOS>

  </CMS_INPUT_RADIOBUTTON>

  <FS_LIST name="ptList">

    <DATASOURCE type="inline" useLanguages="no">

      <ACTIONS>

        <ACTION name="ADD"/>

        <ACTION name="EDIT"/>

      </ACTIONS>

      <COLUMNS>

        <COLUMN show="no">#identifier</COLUMN>

      </COLUMNS>

      <LAYOUT>

        <ADD component="toolbar" constraint="top"/>

        <ADD component="overview" constraint="center"/>

        <ADD component="stackedview" constraint="bottom"/>

      </LAYOUT>

      <TEMPLATES source="sectiontemplates"/>

    </DATASOURCE>

    <LANGINFOS>

      <LANGINFO lang="*" label="List"/>

    </LANGINFOS>

  </FS_LIST>

</CMS_MODULE>

<RULES>

    <RULE>

        <IF>

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

        </IF>

        <WITH>

            <EQUAL>

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

                <TEXT>true</TEXT>

            </EQUAL>

        </WITH>

        <DO>

            <PROPERTY name="VISIBLE" source="ptList"/>

        </DO>

    </RULE>

    <RULE>

        <IF>

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

        </IF>

        <WITH>

            <EQUAL>

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

                <TEXT>false</TEXT>

            </EQUAL>

        </WITH>

        <DO>

            <VALIDATION scope="SAVE">

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

                <MESSAGE lang="*" text="List must be filled."/>

            </VALIDATION>

        </DO>

    </RULE>

</RULES>

Meintest du das?

lg thomas

0 Kudos
pavone
I'm new here

Hallo Annick,

benötigst Du noch weitere Hilfe oder haben Dir die Antworten von Jan und Thomas bereits geholfen? In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.

Viele Grüße

Tim

0 Kudos

Hallo,

die Prüfung auf TRANSLATED sollte hier nicht in die Vorbedingung (IF) sondern in das WITH integriert werden, sonst kann es hier zu einem "Einbahnstraßen-Verhalten" kommen!

Zur Erklärung siehe auch dieses bzw. dieses Posting.

Viele Grüße

Michael

0 Kudos
mikula
Crownpeak employee

Hallo Annick,

benötigst Du noch weitere Hilfe oder haben Dir die Antworten und Postings von Michael bereits geholfen?

In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.

Viele Grüße,

Martin

0 Kudos

Hallo Zusammen,

vielen Dank für die zahlreichen Antworten. Leider war nicht das richtige dabei.

Ich meinte... ich habe ein Modul. Darin gibt es eine FS_LIST die verschiedene andere Module beinhalten kann. Diese Module die innerhalb der Liste vorkommen können haben selber Pflichtformularelemente.

In meinem Fall ist in der FS_LIST ein Defaulteintrag eines solchen Moduls hinterlegt. Dies führt natürlich dazu, dass Die Validierung greift und sagt, in dem Listeneintrag ist ein Pflichtfeld noch nicht gefüllt. Das ist auch richtig und gut so...

ABER. In meinem Fall wird die FS_LIST je nach Bedingung visible oder eben nicht visible. In dem Moment wo sie wegen Bedingung NICHT visible ist, sollte die Validierung des Default-Listeneintrags auch nicht ausgeführt werden. Wird es aber. Was dazu führt dass immer alle Zustände richtig ausgefüllt sein müssen auch wenn für den User nicht relevant.

Ich habe hierfür keine Lösung gefunden. FirstSpirit scheint dazu schlichtweg nicht fähig zu sein. Ich musste also auf Defaulteinträge in den Listen verzichten um es zu realisieren....

Was nicht schön ist und nicht in unser Usability Konzept passt aber nunja. Wenn jemand eine Möglichkeit hierfür gefunden hat wäre ich dankbar.

Viele Grüße, Annick

0 Kudos