Mehrere if-Abfragen in einem Feld

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
bptubs
Beiträge: 9
Registriert: 27.03.2017, 10:38

Mehrere if-Abfragen in einem Feld

Beitrag von bptubs » 01.11.2017, 15:35

Hallo alle miteinander,

ich habe ein in einem Formular ein Dezimalfeld mit einer festgelegten Länge von 7 Feldern. Nun habe ich zwei Anforderungen, ansonsten soll eine Fehlermeldung erscheinen:
1.) das Feld darf nicht leer sein
2.) das Feld muss mit 7 Zahlen ausgefüllt sein.

Die Abfrage dazu erfolgt, wenn das Formular gedruckt werden soll.

Eingetragen habe ich bei diesem Feld unter "prePrint" folgenden Code:

Code: Alles auswählen

var Valid = true;
var Sammelmeldung = "";
/* app.alert (xfa.resolveNode("MyCustomers.Page.Teilformular1.#subform[0].FELD").rawValue) */
	if(
	xfa.resolveNode("MyCustomers.Page.Teilformular1.#subform[0].FELD").rawValue.length != 7
 	| xfa.resolveNode("MyCustomers.Page.Teilformular1.#subform[0].FELD").rawValue == null)
	{
	Valid = false;
	app.alert ("Tragen Sie bitte Ihre Nummer korrekt ein.");
	}
Mein Problem: die Fehlermeldung erfolgt nur für eine der beiden Bedingungen. D.h. bei obrigem Code wird die Fehlermeldung nur dann ausgegeben, wenn ich mindestens eine Zahl aber eben nicht sieben Zahlen eintrage. Trage ich hingegen gar nichts ein, passiert nichts.

Kommentiere ich nun die Längenabfrage aus und prüfe nur noch, ob der rawValue == null bzw. ob eben nichts eingetragen ist, dann erscheint die Fehlermeldung auch.

Jede Abfrage funktioniert also für sich genommen, jedoch nicht beide gemeinsam. Ob ich dabei "und" oder "oder" abfrage, spielt keine Rolle. Was übersehe ich bzw. was mache ich falsch?

Schonmal vielen Dank für eure Antworten.

BAlheit
Beiträge: 842
Registriert: 16.08.2013, 12:22

Mehrere if-Abfragen in einem Feld

Beitrag von BAlheit » 01.11.2017, 15:54

Mal dies probieren:

Code: Alles auswählen

var Valid = true;
var Sammelmeldung = "";

if(
xfa.resolveNode("MyCustomers.Page.Teilformular1.#subform[0].FELD").rawValue == null
 || 
xfa.resolveNode("MyCustomers.Page.Teilformular1.#subform[0].FELD").rawValue.length != 7)
{
Valid = false;
app.alert ("Tragen Sie bitte Ihre Nummer korrekt ein.");
}
Bernd Alheit

bptubs
Beiträge: 9
Registriert: 27.03.2017, 10:38

Mehrere if-Abfragen in einem Feld

Beitrag von bptubs » 02.11.2017, 07:27

Das hat funktioniert, vielen Dank. :)

Antworten