dandob
I'm new here

Unterschiedliche Validierungstexte für dasselbe Feld (FS 5.2)

Jump to solution

Hallo,

ich habe folgendes (hoffentlich "einfach" zu lösendes) Problem in vereinfachter Darstellung:

Ich möchte für ein spezielles Eingabefeld unterschiedliche Hinweistexte einblenden, die abhängig von der eingegebenen Textlänge und einer Combobox sind.

Da die Reihenfolge der Auswertung nicht garantiert ist, steuert irgendeine Regel den Hinweistext.

Folgendes Code-Beispiel (siehe unten) zeigt mein aktuelles Problem:

Gibt man z.B: 3 Zeichen ein und wählt die Size M, könnte das Textfeld z.B. durch die definierte Regel für 'L' als valide "markiert" werden und es würde kein Hinweistext angezeigt.

Jemand eine Idee wie man so etwas sicher realisieren könnte (ggf. auch elegant)?

Ich habe jedenfalls keine Idee, wie man die Regeln widerspruchsfrei und unabhängig voneinander formulieren könnte.

Vielen Dank und beste Grüße

Daniel

Beispiel-Formular :

<CMS_MODULE>

  <CMS_INPUT_TEXT name="st_text" hFill="yes" noBreak="yes" singleLine="no" useLanguages="yes">

    <LANGINFOS>

      <LANGINFO lang="*" label="Headline" description="Insert language specific text."/>

    </LANGINFOS>

  </CMS_INPUT_TEXT>

  <CMS_INPUT_NUMBER name="pt_headline_counter" editable="no" length="4" singleLine="no">

    <LANGINFOS>

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

    </LANGINFOS>

  </CMS_INPUT_NUMBER>

  <CMS_INPUT_COMBOBOX name="st_size" allowEmpty="no" hFill="yes" preset="copy" singleLine="no" useLanguages="no">

    <ENTRIES>

      <ENTRY value="s">

        <LANGINFOS>

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

        </LANGINFOS>

      </ENTRY>

      <ENTRY value="m">

        <LANGINFOS>

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

        </LANGINFOS>

      </ENTRY>

      <ENTRY value="l">

        <LANGINFOS>

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

        </LANGINFOS>

      </ENTRY>

      <ENTRY value="xl">

        <LANGINFOS>

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

        </LANGINFOS>

      </ENTRY>

      <ENTRY value="xxl">

        <LANGINFOS>

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

        </LANGINFOS>

      </ENTRY>

    </ENTRIES>

    <LANGINFOS>

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

    </LANGINFOS>

  </CMS_INPUT_COMBOBOX>

</CMS_MODULE>

Beispiel Regeln:

<RULES>

    <ON_EVENT>

        <WITH>

            <ADD value="0">

                <PROPERTY name="LENGTH" source="st_text"/>

            </ADD>

        </WITH>

        <DO>

            <PROPERTY name="VALUE" source="pt_headline_counter"/>

        </DO>

    </ON_EVENT>

    <ON_EVENT>

        <WITH>

            <NOT>

                <AND>

                    <EQUAL>

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

                        <TEXT>s</TEXT>

                    </EQUAL>

                    <GREATER_THAN>

                        <PROPERTY name="LENGTH" source="st_text"/>

                        <NUMBER>1</NUMBER>

                    </GREATER_THAN>

                </AND>

            </NOT>

        </WITH>

        <DO>

            <VALIDATION>

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

                <MESSAGE lang="*" text="WARNING S: Text greater than 1 characters."/>

            </VALIDATION>

        </DO>

    </ON_EVENT>

    <ON_EVENT>

        <WITH>

            <NOT>

                <AND>

                    <EQUAL>

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

                        <TEXT>m</TEXT>

                    </EQUAL>

                    <GREATER_THAN>

                        <PROPERTY name="LENGTH" source="st_text"/>

                        <NUMBER>2</NUMBER>

                    </GREATER_THAN>

                </AND>

            </NOT>

        </WITH>

        <DO>

            <VALIDATION>

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

                <MESSAGE lang="*" text="WARNING M: Text greater than 2 characters."/>

            </VALIDATION>

        </DO>

    </ON_EVENT>

    <ON_EVENT>

        <WITH>

            <NOT>

                <AND>

                    <EQUAL>

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

                        <TEXT>l</TEXT>

                    </EQUAL>

                    <GREATER_THAN>

                        <PROPERTY name="LENGTH" source="st_text"/>

                        <NUMBER>3</NUMBER>

                    </GREATER_THAN>

                </AND>

            </NOT>

        </WITH>

        <DO>

            <VALIDATION>

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

                <MESSAGE lang="*" text="WARNING: L Text greater than 3 characters."/>

            </VALIDATION>

        </DO>

    </ON_EVENT>

    <ON_EVENT>

        <WITH>

            <NOT>

                <AND>

                    <EQUAL>

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

                        <TEXT>xl</TEXT>

                    </EQUAL>

                    <GREATER_THAN>

                        <PROPERTY name="LENGTH" source="st_text"/>

                        <NUMBER>4</NUMBER>

                    </GREATER_THAN>

                </AND>

            </NOT>

        </WITH>

        <DO>

            <VALIDATION>

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

                <MESSAGE lang="*" text="WARNING XL: Text greater than 4 characters."/>

            </VALIDATION>

        </DO>

    </ON_EVENT>

</RULES>

0 Kudos
10 Replies

Hi Michael,

alles klar und Danke!

Die Anlage von komplexen Regeln, ist und bleibt einfach immer eine echte herausforderende Denksportaufgabe!

Beste Grüße aus Hamburg,

Daniel

0 Kudos