rmx
Returning Observer

Regeln | Dynamische Abfrage auf leer

Hallo

ich habe 2 Textfelder die abhängig von einem Radio-Button eingeblendet werden.

Nun möchte ich die Regel erweitern, so dass das ausgewählte Textfeld auch einen Wert enthalten muss.

Klappt auch - fast - wenn ich dann die Sichtbare Eingabekomponente wechsle, dann wird trotzdem noch das vorherige Feld beim Speichern validiert.

What am I missing verdammt!?

Danke für eine 1A Lösung, 

Roman

PS: Es gibt anscheinend schon eine ähnliche Frage, aber der Clue mit dem WITH Tag bringt mich noch nicht voran...

Die Eingabemaske

 

 

 

<CMS_MODULE>

  <CMS_INPUT_RADIOBUTTON name="st_choose" preset="default" useLanguages="yes">
    <ENTRIES>
      <ENTRY value="value">
        <LANGINFOS>
          <LANGINFO lang="*" label="Single value"/>
          <LANGINFO lang="DE" label="Wert"/>
        </LANGINFOS>
      </ENTRY>
      <ENTRY value="list">
        <LANGINFOS>
          <LANGINFO lang="*" label="Value list"/>
          <LANGINFO lang="DE" label="Kommaseparierte Liste"/>
        </LANGINFOS>
      </ENTRY>
    </ENTRIES>
    <LANGINFOS>
      <LANGINFO lang="*" label="Single value or Comma separated value list?"/>
    </LANGINFOS>
  </CMS_INPUT_RADIOBUTTON>

  <CMS_INPUT_TEXT name="st_text_entry" hFill="yes" useLanguages="yes">
    <LANGINFOS>
      <LANGINFO lang="*" label="Value"/>
      <LANGINFO lang="DE" label="Wert"/>
    </LANGINFOS>
  </CMS_INPUT_TEXT>

  <CMS_INPUT_TEXTAREA name="st_text_entry_list" hFill="yes" rows="15" useLanguages="yes">
    <LANGINFOS>
      <LANGINFO lang="*" label="Comma separated value list"/>
      <LANGINFO lang="DE" label="Kommaseparierte Liste"/>
    </LANGINFOS>
  </CMS_INPUT_TEXTAREA>

</CMS_MODULE>

 

 

 

Der Regelversuch

 

 

 

<RULES>
<!-- Switch entry field -->
	<ON_EVENT>
		<WITH>
			<EQUAL>
				<PROPERTY name="ENTRY" source="st_choose"/>
				<TEXT>value</TEXT>
			</EQUAL>
		</WITH>
		<DO>
			<PROPERTY name="VISIBLE" source="st_text_entry"/>
		</DO>
	</ON_EVENT>
	<ON_EVENT>
		<WITH>
			<EQUAL>
				<PROPERTY name="ENTRY" source="st_choose"/>
				<TEXT>list</TEXT>
			</EQUAL>
		</WITH>
		<DO>
			<PROPERTY name="VISIBLE" source="st_text_entry_list"/>
		</DO>
	</ON_EVENT>
<!-- #### Theses rules are not working as expected ####-->
	<RULE>
		<IF>
			<AND>
				<EQUAL>
					<PROPERTY name="ENTRY" source="st_choose"/>
					<TEXT>list</TEXT>
				</EQUAL>
				<PROPERTY name="VISIBLE" source="st_text_entry_list"/>
			</AND>
		</IF>
		<WITH>
			<NOT>
				<PROPERTY name="EMPTY" source="st_text_entry_list"/>
			</NOT>
		</WITH>
		<DO>
			<VALIDATION scope="save">
				<PROPERTY name="VALID" source="st_text_entry_list"/>
				<MESSAGE lang="*" text="Please enter a value list"/>
				<MESSAGE lang="DE" text="Bitte geben Sie einen kommaseparierte Liste ein"/>
			</VALIDATION>
		</DO>
	</RULE>
	<RULE>
		<IF>
			<EQUAL>
				<PROPERTY name="ENTRY" source="st_choose"/>
				<TEXT>value</TEXT>
			</EQUAL>
		</IF>
		<WITH>
			<NOT>
				<PROPERTY name="EMPTY" source="st_text_entry"/>
			</NOT>
		</WITH>
		<DO>
			<VALIDATION scope="save">
				<PROPERTY name="VALID" source="st_text_entry"/>
				<MESSAGE lang="*" text="Please enter a value"/>
				<MESSAGE lang="DE" text="Bitte geben Sie einen Wert ein"/>
			</VALIDATION>
		</DO>
	</RULE>
</RULES>

 

 

 

 

0 Kudos
1 Reply
mbergmann
Crownpeak employee

Hi Roman,

Validierungen mit IF sind meistens nicht sinnvoll. Man könnte denken, ein IF steuert wann überhaupt validiert werden soll - das ist aber nicht so. Vielmehr steuert es in deinem Fall, wann die Gültigkeit überhaupt gesetzt und insb. auch wieder auf „valid“  geändert werden soll. Üblicherweise baut man darum entsprechende „Bedingungen“ ins WITH mit ein.

Schau mal hier, da hatte ich mal etwas zu einem ähnlichen Problem geschrieben:

https://community.crownpeak.com/t5/Questions-Answers/dynamische-Regel-zur-Überpfrüfung-von-Eingaben/...

Ich weiß jetzt nicht, ob du das Posting meintest…

Viele Grüße 

Michael

0 Kudos