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.