Tipps & Tricks - Pflichtfelder mit JavaScript
Dieser Beitrag erklärt, wie Eingabeelemente mit JavaScript in Abhängigkeit von einem
Wert zum Pflichtfeld gemacht werden. Für dieses Beispiel verwenden wir die Applikation
"Reisekosten", die im
Intrexx Application Store
erhältlich ist.
Hier gibt es in der Datengruppe "Reise" die Kind-Datengruppe "Belege". In dieser
Datengruppe wird die Seite "Belege bearbeiten" angepasst. Auf der Seite kann neben
dem EUR-Betrag auch einen Betrag in der Fremdwährung eingetragen werden. Wurde
in der Auswahlliste "Währung" nicht der Eintrag "EUR" ausgewählt, soll das Eingabefeld
"Fremdwährung" per JavaScript als Pflichtfeld eingestellt werden -
anderenfalls bleibt es ein normales Eingabefeld.
Öffnen Sie den
Eigenschaftendialog der Auswahlliste "Währung".
Wechseln Sie dort auf den
Reiter Skript.
Klicken Sie auf
"JavaScript für Desktop bearbeiten".
Fügen Sie das folgende Skript ein.
function checkRequiredFields()
{
var htmlWaehrung = getElement("76BCC19302F4C0DF090C5E47D82A9352D5DB2FC1"); /*Währung dropdowncontrol*/
var htmlFremdbetrag = getElement("23188E098B6C962CB65F3886B402176004F42DBC"); /*Fremdbetrag currencycontrol*/
var htmlEurobetrag = getElement("2E296E42E9484709EBD2C36DBDD504C40B67D8AA"); /*Betrag in € currencycontrol*/
if(Browser.getValue(htmlWaehrung) != "EUR")
{
checkRequired(htmlFremdbetrag,"Bitte geben Sie einen Betrag in der Fremdwährung an!")
htmlFremdbetrag.oUp.setRequired(true);
htmlEurobetrag.oUp.setRequired(false);
}
else
{
htmlFremdbetrag.oUp.setRequired(false);
htmlEurobetrag.oUp.setRequired(true);
}
return true;
}
Ersetzen Sie die
GUIDs in den ersten drei
Skriptzeilen entsprechend mit den GUIDs der Elemente in Ihrer Applikation.
Die GUIDs können Sie im Editor ganz einfach im Bereich
Applikationsstruktur
ermitteln.
Die Funktion prüft in der if-Bedingung zunächst, ob eine andere Währung (ungleich EUR)
ausgewählt ist. Ist dies der Fall, prüft die Methode "checkRequired", ob ein Wert
im Eingabefeld "Betrag Fremdwährung" eingegeben wurde und gibt einen entsprechenden Hinweis aus,
wenn dies nicht der Fall ist. Mit der Methode "oUp.setRequired" wird das Eingabefeld "Betrag Fremdwährung"
als Pflichtfeld deklariert (true), während das Eingabefeld "Geamtbetrag in EUR"
als optionales Feld deklariert wird (false). Ist die Währung "EUR" ausgewählt,
wird das Feld für die Fremdwährung als optionales, und das Feld für den Eurobetrag
als Pflichtfeld definiert. Klicken Sie auf "OK" und ordnen Sie die neue Funktion
dem Event "onchange" zu. Damit wird das Skript jedesmal, wenn eine Währung in der
Auswahlliste ausgewählt wird, ausgeführt.
Speichern Sie die Applikation und testen Sie das Ergebnis im Browser.