Seite 1 von 2
PLZ-Range festlegen mit If-Oder
Verfasst: 15.11.2012, 09:14
von Smartie
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
PLZ-Range festlegen mit If-Oder
Verfasst: 15.11.2012, 10:01
von radzmar
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)
}
PLZ-Range festlegen mit If-Oder
Verfasst: 15.11.2012, 10:40
von Smartie
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
PLZ-Range festlegen mit If-Oder
Verfasst: 15.11.2012, 12:29
von Smartie
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!
PLZ-Range festlegen mit If-Oder
Verfasst: 15.11.2012, 12:30
von Merklin
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
PLZ-Range festlegen mit If-Oder
Verfasst: 15.11.2012, 12:46
von Smartie
@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
PLZ-Range festlegen mit If-Oder
Verfasst: 15.11.2012, 15:51
von radzmar
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);
}
PLZ-Range festlegen mit If-Oder
Verfasst: 15.11.2012, 16:24
von Smartie
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
PLZ-Range festlegen mit If-Oder
Verfasst: 15.11.2012, 17:13
von Smartie
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?
PLZ-Range festlegen mit If-Oder
Verfasst: 15.11.2012, 17:18
von armine
Hallo Smartie,
mit RegExp gehts ganz einfach. Überprüft werden 5-stellige Postleitzahlen gemäß der Aufstellung in "15 Nov 2012 12:29".
vg armine