PLZ-Range festlegen mit If-Oder

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Smartie
Beiträge: 7
Registriert: 15.11.2012, 08:12

PLZ-Range festlegen mit If-Oder

Beitrag von Smartie » 15.11.2012, 09:14

Hallo ihr lieben,

ich versuche gerade verzweifelt meine Textbox PLZ als ein wenig einzugrenzen.
Funktion sollte eigentlich wenn plz kleiner als 70000 oder größer als 74000-77999 ist soll eine Meldung kommen, dass es nicht im PLZ-Gebiet ist.

Das ganze habe ich dann auch schon wie folgt versucht:

Code: Alles auswählen

 Formular1.Persönliche_Daten.PLZ::exit - (JavaScript, client)
if (this.rawValue < 70000) : (this.rawValue > [74000-77999]) {
    xfa.host.messageBox("Leider außerhalb des PLZ-Gebiets", "Information", 3) ;
    xfa.host.setFocus(this)
}
Ich dachte eigentlich, dass durch ":" der oder command in JS ist aber sieht wohl nicht so aus oder?

Bin für jede Hilfe sehr dankbar.

Grüße Smartie

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

PLZ-Range festlegen mit If-Oder

Beitrag von radzmar » 15.11.2012, 10:01

Hi,

die zweite Bedingung kapier ich nicht.
Größer als 74000 bis 77999? 77999 ist sowieso größer als 74000, demnach reicht das doch aus.

Code: Alles auswählen

if (this.rawValue < 70000 || this.rawValue > 74000) {
    xfa.host.messageBox("Leider außerhalb des PLZ-Gebiets", "Information", 3) ;
    xfa.host.setFocus(this)
}

Smartie
Beiträge: 7
Registriert: 15.11.2012, 08:12

PLZ-Range festlegen mit If-Oder

Beitrag von Smartie » 15.11.2012, 10:40

Naja es gibt ja mehrere Gebiete von PLZ.
Beispielsweise Gebiete mit 70xxx, 74xxx oder 78xxx etc pp.

Und wenn ich das Ganze nun einschränken möchte, so dass ich nur Anfragen vom PLZ Gebiet bekomm, die innerhalb von der PLZ 70xxx-73xxx und 78xxx und 88xxx-89xxx sind, dachte ich schließ ich alle die kleiner als 70xxx sind schon mal so aus und dann muss ich eben mit der "oder" funktion kommen, weil ich ja die anderen Ranges auch noch benötige.

Bisl schwierig zu erklären aber ich hoffe, dass es ein bißchen verständlicher ist :)

Danke

Gruß Smartie

Smartie
Beiträge: 7
Registriert: 15.11.2012, 08:12

PLZ-Range festlegen mit If-Oder

Beitrag von Smartie » 15.11.2012, 12:29

Mir ist gerade in den Sinn gekommen, dass man das Ganze auch anders prüfen könnte, in dem man nur die ersten 2 Zeichen der PLZ prüft via switch und dann alles auswertet.

Code: Alles auswählen

switch ((int)this.rawValue.substring(0,2)) {
//*prüft die ersten 2 char der PLZ*//
case 70:
case 71:
case 72:
case 73:
case 78:
case 88:
case 89:
//*  Anweisungen... *//
break;
default:
xfa.host.messageBox("Fehlermeldung...",  3);
}
Da ich aber noch nicht richtig fit bin auf dem Gebiet JavaScripting würde ich gern wissen, ob es so wie oben geschrieben überhaupt möglich ist und falls ja wie ich das Ganze in Form bekomme?

Vielen Dank!

Benutzeravatar
Merklin
Beiträge: 1857
Registriert: 04.04.2009, 17:03

PLZ-Range festlegen mit If-Oder

Beitrag von Merklin » 15.11.2012, 12:30

Hi,

könnte man es eventuell so schreiben?

Code: Alles auswählen

if (this.rawValue < 70000 || this.rawValue > 74000  && this.rawValue < 77990) {
xfa.host.messageBox("Leider außerhalb des PLZ-Gebiets", "Information", 3) ;
xfa.host.setFocus(this)
}
VG Merklin

Smartie
Beiträge: 7
Registriert: 15.11.2012, 08:12

PLZ-Range festlegen mit If-Oder

Beitrag von Smartie » 15.11.2012, 12:46

@Merklin

Das funktioniert sehr gut, nur muss ich noch den Range von 88000-89999 unterbekommen und wenn ich deine Zeile weiterführe klappt es mittendrin dann nicht mehr? :(


Grüße Smartie

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

PLZ-Range festlegen mit If-Oder

Beitrag von radzmar » 15.11.2012, 15:51

Eine andere Möglichkeit wäre ein regulärer Ausdruck.

Code: Alles auswählen

if (!this.formattedValue.match(/(^70|71|72|73|78|88|89)[0-9]{3}/g)) {
	xfa.host.messageBox("Leider außerhalb des PLZ-Gebiets", "Information", 3);
}

Smartie
Beiträge: 7
Registriert: 15.11.2012, 08:12

PLZ-Range festlegen mit If-Oder

Beitrag von Smartie » 15.11.2012, 16:24

Hi radzmar,

diese Funktion, funtkioniert bei mir so komplett gar nicht. Egal ob ich jetzt 69000 (Fehler ok) eingebe oder 70000 (Fehler sollte hier nicht kommen) bekomm ich die Meldung?

Ich zerbrech mir gerade noch den Kopf wie es eventuell mit dem Switch geht aber komm einfach nicht drauf :)


Vielen Dank für eure Mühe

Gruß Smartie

Smartie
Beiträge: 7
Registriert: 15.11.2012, 08:12

PLZ-Range festlegen mit If-Oder

Beitrag von Smartie » 15.11.2012, 17:13

Code: Alles auswählen

  Formular1.Persönliche_Daten.PLZ::exit - (JavaScript, client)
var plzgebiet = Formular1.Persönliche_Daten.PLZ
if (plzgebiet.rawValue.substring(0, 2) != [70]) {
    xfa.host.messageBox("Sie befinden sich leider außerhalb des PLZ-Gebiets", "Information", 3);
}
Also so kann ich schonmal den kompletten Range von 70000-79999 eingeben. Jetzt kann es doch nicht mehr so schwer sein, die restlichen PLZ-Ranges miteinzubeziehen oder? :D

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

PLZ-Range festlegen mit If-Oder

Beitrag von armine » 15.11.2012, 17:18

Hallo Smartie,

mit RegExp gehts ganz einfach. Überprüft werden 5-stellige Postleitzahlen gemäß der Aufstellung in "15 Nov 2012 12:29".

vg armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten