- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
WebEdit5: Dyn. Formulare und Verhalten des JavaClients
Hallo Community,
ich versuche mit folgender Regel in Abhรคngigkeit zum ausgewรคhlten Wert einer CMS_INPUT_RADIOBUTTON-Komponente (ptEventType) die CMS_INPUT_TEXT-Komponente (ptTitle) required zu setzen, bzw. nicht (wenn ptEventType = child, dann nicht required).
Mit folgender Regel klappt das rein visuell im WebEdit perfekt (keine Warnhinweise mehr) - beim Abspeichern kommt allerdings die Meldung, dass nicht gespeichert werden konnte, da ptTitle nicht ausgefรผllt wurde. Der JavaClient setzt das Feld (natรผrlich) immer auf required.
<ON_SAVE>
<IF>
<EQUAL>
<PROPERTY source="#global" name="LANG"/>
<TEXT>DE</TEXT>
</EQUAL>
</IF>
<WITH>
<OR>
<NOT>
<PROPERTY source="ptTitle" name="EMPTY"/>
</NOT>
<EQUAL>
<PROPERTY source="ptEventType" name="VALUE"/>
<TEXT>child</TEXT>
</EQUAL>
</OR>
</WITH>
<DO>
<VALIDATION>
<PROPERTY source="ptTitle" name="VALID"/>
<MESSAGE lang="*" text="Bitte tragen Sie eine รberschrift fรผr diesen Artikel ein."/>
</VALIDATION>
</DO>
</ON_SAVE>
Sobald ich den IF-Passus gegen folgenden ersetze, reagiert der WebEdit wie er soll und im JavaClient ist das Feld ptTitle wie erwartet nicht mehr required.
<IF>
<AND>
<EQUAL>
<PROPERTY source="#global" name="LANG"/>
<TEXT>DE</TEXT>
</EQUAL>
<PROPERTY source="#global" name="WEB"/>
</AND>
</IF>
Die gewรผnschte Lรถsung wรคre, dass JavaClient und WebClient beide abhรคngig von ptEventType ptTitle required setzen. Bekomme ich das irgenwie hin?
Danke im Voraus,
beste Grรผรe,
Daniel
- Labels:
-
Developers
-
Knowledgebase
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Daniel,
Argl. Lesen hilft. Jetzt sehe ich auch erst das Problem
Du benutzt ja einen Radiobutton. Und der Wert eines Radiobuttons ist natรผrlich kein Text sondern eine Option. Daher schlรคgt ein Vergleich mit einem Text immer fehl. In Webedit funktioniert's, weil dort technisch bedingt eine Zeichenkette als Wert verwendet wird.
Richtig ist die Verwendung der Eigenschaft ENTRY statt VALUE (gilt รผbrigens auch fรผr Combobox). Allerdings nur dann, wenn der Wert nicht aus der Datenbank geladen wird (dann hรคttest du verloren).
Und als Bonbon: deine Regel vom Anfang stimmt dann.
Gruร
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
ich bin mir nicht sicher, ob ich das geschilderte Problem richtig verstanden habe.
Zur Erklรคrung fรผr mich:
Es existieren die zwei Eingabekomponenten "ptEventType" (Radiobutton) und "ptTitle" (Textzeile).
Die Regel soll folgendes erwirken?
* Radiobutton nicht aktiviert -> Textzeile muss gefรผllt werden
* Radiobutton aktiviert -> Textzeile muss nicht gefรผllt werden
Stimmt das so?
Ich hab das jetzt nur mit zwei CMS_INPUT_TEXT-Komponenten probiert. Da funktioniert die folgende Regel fรผr beide Clients:
<RULES>
<ON_SAVE>
<IF>
<EQUAL>
<PROPERTY source="#global" name="LANG"/>
<PROPERTY source="#global" name="MASTER"/>
</EQUAL>
</IF>
<WITH>
<NOT>
<AND>
<PROPERTY source="ptEventType" name="EMPTY"/>
<PROPERTY source="ptTitle" name="EMPTY"/>
</AND>
</NOT>
</WITH>
<DO>
<VALIDATION>
<PROPERTY source="ptEventType" name="VALID"/>
<MESSAGE lang="*" text="No content provided!"/>
</VALIDATION>
<VALIDATION>
<PROPERTY source="ptTitle" name="VALID"/>
<MESSAGE lang="*" text="No content provided!"/>
</VALIDATION>
</DO>
</ON_SAVE>
</RULES>
LG Michaela
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Michaela,
nicht ganz:
Sobald ptEventType den Wert "child" annimmt, darf ptTitle nicht leer sein.
Das funktioniert wie gesagt wunderbar im WebEdit mit der meinigen Lรถsung, aber nicht im JavaClient. Ich brรคuchte diese Lรถsung allerdings auf irgendeine Art und Weise fรผr beide Clients.
LG,
Daniel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Daniel,
ich mag mich ob deines Ziels tรคuschen, aber aktuell sagt deine Regel (if-Teil mal auรen vor, denn der bestimmt nur, ob die Regel durchgefรผhrt wird oder nicht), dass ptTitle dann valide ist, wenn es nicht leer ist oder ptEventType = child ist. Ich glaube aber, du willst ptEventType != child haben, oder?
Das wรคre dann folgender Werteabschnitt:
<NOT>
<AND>
<PROPERTY source="ptTitle" name="EMPTY"/>
<EQUAL>
<PROPERTY source="ptEventType" name="VALUE"/>
<TEXT>child</TEXT>
</EQUAL>
</AND>
</NOT>
Regeln sollten prinzipiell in beiden Clients gleich funktionieren, ansonsten liegt mรถglicherweise ein Fehler vor.
Gruร
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Stefan,
ich will ptEventType == child haben. Nur dann soll ptTitle "required" sein โ sonst nicht.
ptTitle wird bei anderen Werten des Radiobuttons sogar ausgeblendet, was auch das Problem darstellen kรถnnte.
So blende ich ptTitle aus (in Abhรคngigkeit eines weiteren Feldes):
<ON_EVENT>
<WITH>
<OR>
<NOT>
<PROPERTY source="#global" name="WEB"/>
</NOT>
<NOT>
<AND>
<EQUAL>
<PROPERTY source="ptType" name="VALUE"/>
<TEXT>event</TEXT>
</EQUAL>
<EQUAL>
<PROPERTY source="ptEventType" name="VALUE"/>
<TEXT>child</TEXT>
</EQUAL>
</AND>
</NOT>
</OR>
</WITH>
<DO>
<PROPERTY source="ptTitle" name="VISIBLE"/>
</DO>
</ON_EVENT>
Vielen Dank und Grรผรe zurรผck,
Daniel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Daniel Klimsa schrieb:
ich will ptEventType == child haben.
Nur dann soll ptTitle "required" sein โ sonst nicht.
Ja, genau das beschreibt die Logik, die ich oben angegeben habe.
Vielleicht mal umgangssprachlich: ptTitle ist dann ungรผltig, wenn es leer ist und wenn ptEventType child ist.
Folglich gilt:
- ist ptEventType = child und ptTitle leer, dann ist der Zustand ungรผltig.
- ist ptTitle nicht leer, dann ist der Zustand gรผltig (egal, welchen Wert ptEventType hat)
- ist ptEventType != child, dann ist der Zustand gรผltig (egal, welchen Wert ptTitle hat)
Ich vermute mal, dein eigener Denkansatz fรผhrt dich ein wenig in die Irre. Es geht in der Regel nicht um "required", sondern um die Definition, wann der Zustand (also die Kombination der Werte in den Eingabekomponenten) gรผltig ist und wann nicht. Das "required" kommt durch das ON_SAVE hinzu, dass nรคmlich nur dann gespeichert werden kann, wenn ein gรผltiger Zustand erreicht ist.
Hoffe, das klรคrt es ein wenig.
Gruร
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Stefan,
danke fรผr Deine unendliche Geduld und natรผrlich liegst Du vollkommen richtig. ๐
Allerdings habe ich bereits Michaela falsch geantwortet - es ist so, wie ich eingangs schrieb:
Nur wenn ptEventType == child, dann soll ptTitle nicht mit einer Fehlermeldung versehen werden - deshalb mein Lรถsungsansatz mit <or> (ptEventType hat mehrere Werte, bei deren Auswahl ptTitle nicht leer sein darf).
Wie muss ich die Regel schreiben, damit das so funktioniert?
Viele Grรผรe,
Daniel
P.S.: Ein eventueller gemeinsamer Kaffee geht dann mal auf mich. ๐
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Daniel,
Argl. Lesen hilft. Jetzt sehe ich auch erst das Problem
Du benutzt ja einen Radiobutton. Und der Wert eines Radiobuttons ist natรผrlich kein Text sondern eine Option. Daher schlรคgt ein Vergleich mit einem Text immer fehl. In Webedit funktioniert's, weil dort technisch bedingt eine Zeichenkette als Wert verwendet wird.
Richtig ist die Verwendung der Eigenschaft ENTRY statt VALUE (gilt รผbrigens auch fรผr Combobox). Allerdings nur dann, wenn der Wert nicht aus der Datenbank geladen wird (dann hรคttest du verloren).
Und als Bonbon: deine Regel vom Anfang stimmt dann.
Gruร
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Stefan,
wir mรผssen uns glaub ich alle nen Kaffee spendieren. ,-)
Danke fรผr den Hinweis mit der zu verwendenden Eigenschaft "ENTRY" โ muss ich die "TEXT"-Tags auch anpassen? Denn so komm ich nicht zum gewรผnschten Ergebnis, obwohl die Eintrรคge nicht aus der DB kommen:
<ON_SAVE>
<IF>
<EQUAL>
<PROPERTY source="#global" name="LANG"/>
<TEXT>DE</TEXT>
</EQUAL>
</IF>
<WITH>
<OR>
<NOT>
<PROPERTY source="ptTitle" name="EMPTY"/>
</NOT>
<EQUAL>
<PROPERTY source="ptEventType" name="ENTRY"/>
<TEXT>child</TEXT>
</EQUAL>
</OR>
</WITH>
<DO>
<VALIDATION>
<PROPERTY source="ptTitle" name="VALID"/>
<MESSAGE lang="*" text="Bitte tragen Sie eine รberschrift fรผr diesen Artikel ein."/>
</VALIDATION>
</DO>
</ON_SAVE>
Sorry, bin in der Doku nicht fรผndig geworden.
Grรผรe,
Daniel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das sollte so funktionieren. Bitte gib mal die FS-Versionsnummer an und poste die Definition des Radiobutton.
Nebenfrage: Wozu machst du eigentlich die Einschrรคnkung auf DE?
Gruร
Stefan

