Zeichenanzahl prüfen
Verfasst: 31.08.2017, 13:28
Hallo Forum,
ich habe ein Javascript Problem.
Problem ist das Optionsfeld Antragsart (AAM_Antragsart) mit den dazugehörigen Textfeldern AKZ (AAM_AKZ_Verl und AAM_AKZ_Aend).
Wird ein Neuantrag gestellt passiert nichts - richtig so.
Falls die Verlängerung oder Änderung gewählt wird muss die dazugehörige AKZ = Aktenzeichen mit 7 Zeichen gefüllt werden.
Die Textfelder AKZ sind mit folgendem Ereignis hinterlegt um zu gewährleisten, das die 7 Zeichen (2 Ziffern, ein Bindestrich, 4 Ziffern) immer so eingetragen werden.
Formular1.#subform[0].keine_pruefung.AAM_AKZ_Verl::change - (JavaScript, client)
if (xfa.event.newText.search(/^([0-9]{1,2}-?|[0-9]{2}-[0-9]{1,5})$/i)) {
xfa.event.change = "" ;
xfa.host.beep("0") ;
}
if (xfa.event.newText.length == 2) {
xfa.event.change += "-"
}
Über den Button Senden sollen die Prüfungen laufen:
if(AAM_Antragsart.rawValue == "Verlängerung" && keine_pruefung.AAM_AKZ_Verl.length <= 7){
Valid = false;
Sammelmeldung = Sammelmeldung + "- Das Aktenzeichen (AKZ) mit 7 Zeichen für die Antragsverlängerung" + "\n";
}
if(AAM_Antragsart.rawValue == "Änderung" )
{
if(keine_pruefung.AAM_AKZ_Aend.length <= 7)
{
Valid = false;
Sammelmeldung = Sammelmeldung + "- Das Aktenzeichen (AKZ) mit 7 Zeichen für die Antragsänderung" + "\n";
}}
else{
Valid = true;
}
So klappt es leider nicht. Die für die Änderung läuft so weit, das die Fehlermeldung angezeigt wird, wenn nichts oder weniger als 7 Zeichen eingetragen sind. Aber auch noch wenn es richtig mit 7 Zeichen gefüllt ist.
Irgendwo ist da ein Gedankenfehler - kann da jemand helfen?
Die Skripte sind fast alle mit individuellen Anpassungen aus dem Forum - herzlichen Dank auch dafür.
Gruß J. Holm
PS: Im Optionsfeld "Antragsart" liegt noch folgendes Skript:
Formular1.#subform[0].AAM_Antragsart::change - (JavaScript, client)
if (this.rawValue == "Verlängerung") {
keine_pruefung.AAM_AKZ_Verl.presence = "visible";
keine_pruefung.AAM_AKZ_Aend.presence = "visible";
keine_pruefung.AAM_AKZ_Verl.validate.nullTest = "error";
keine_pruefung.AAM_AKZ_Aend.validate.nullTest = "disabled";
keine_pruefung.AAM_AKZ_Verl.access = "open";
keine_pruefung.AAM_AKZ_Aend.access = "readOnly";
} else if (this.rawValue == "Änderung") {
keine_pruefung.AAM_AKZ_Aend.presence = "visible";
keine_pruefung.AAM_AKZ_Verl.presence = "visible";
keine_pruefung.AAM_AKZ_Aend.validate.nullTest = "error";
keine_pruefung.AAM_AKZ_Verl.validate.nullTest = "disabled";
keine_pruefung.AAM_AKZ_Aend.access = "open";
keine_pruefung.AAM_AKZ_Verl.access = "readOnly";
} else if (this.rawValue == "Neuantrag") {
keine_pruefung.AAM_AKZ_Verl.presence = "visible";
keine_pruefung.AAM_AKZ_Aend.presence = "visible";
keine_pruefung.AAM_AKZ_Verl.validate.nullTest = "disabled";
keine_pruefung.AAM_AKZ_Aend.validate.nullTest = "disabled";
keine_pruefung.AAM_AKZ_Verl.access = "readOnly";
keine_pruefung.AAM_AKZ_Aend.access = "readOnly";
}
Eventuell ist da einiges doppelt gemoppelt, aber so habe ich es zum Laufen gebracht.
ich habe ein Javascript Problem.
Problem ist das Optionsfeld Antragsart (AAM_Antragsart) mit den dazugehörigen Textfeldern AKZ (AAM_AKZ_Verl und AAM_AKZ_Aend).
Wird ein Neuantrag gestellt passiert nichts - richtig so.
Falls die Verlängerung oder Änderung gewählt wird muss die dazugehörige AKZ = Aktenzeichen mit 7 Zeichen gefüllt werden.
Die Textfelder AKZ sind mit folgendem Ereignis hinterlegt um zu gewährleisten, das die 7 Zeichen (2 Ziffern, ein Bindestrich, 4 Ziffern) immer so eingetragen werden.
Formular1.#subform[0].keine_pruefung.AAM_AKZ_Verl::change - (JavaScript, client)
if (xfa.event.newText.search(/^([0-9]{1,2}-?|[0-9]{2}-[0-9]{1,5})$/i)) {
xfa.event.change = "" ;
xfa.host.beep("0") ;
}
if (xfa.event.newText.length == 2) {
xfa.event.change += "-"
}
Über den Button Senden sollen die Prüfungen laufen:
if(AAM_Antragsart.rawValue == "Verlängerung" && keine_pruefung.AAM_AKZ_Verl.length <= 7){
Valid = false;
Sammelmeldung = Sammelmeldung + "- Das Aktenzeichen (AKZ) mit 7 Zeichen für die Antragsverlängerung" + "\n";
}
if(AAM_Antragsart.rawValue == "Änderung" )
{
if(keine_pruefung.AAM_AKZ_Aend.length <= 7)
{
Valid = false;
Sammelmeldung = Sammelmeldung + "- Das Aktenzeichen (AKZ) mit 7 Zeichen für die Antragsänderung" + "\n";
}}
else{
Valid = true;
}
So klappt es leider nicht. Die für die Änderung läuft so weit, das die Fehlermeldung angezeigt wird, wenn nichts oder weniger als 7 Zeichen eingetragen sind. Aber auch noch wenn es richtig mit 7 Zeichen gefüllt ist.
Irgendwo ist da ein Gedankenfehler - kann da jemand helfen?
Die Skripte sind fast alle mit individuellen Anpassungen aus dem Forum - herzlichen Dank auch dafür.
Gruß J. Holm
PS: Im Optionsfeld "Antragsart" liegt noch folgendes Skript:
Formular1.#subform[0].AAM_Antragsart::change - (JavaScript, client)
if (this.rawValue == "Verlängerung") {
keine_pruefung.AAM_AKZ_Verl.presence = "visible";
keine_pruefung.AAM_AKZ_Aend.presence = "visible";
keine_pruefung.AAM_AKZ_Verl.validate.nullTest = "error";
keine_pruefung.AAM_AKZ_Aend.validate.nullTest = "disabled";
keine_pruefung.AAM_AKZ_Verl.access = "open";
keine_pruefung.AAM_AKZ_Aend.access = "readOnly";
} else if (this.rawValue == "Änderung") {
keine_pruefung.AAM_AKZ_Aend.presence = "visible";
keine_pruefung.AAM_AKZ_Verl.presence = "visible";
keine_pruefung.AAM_AKZ_Aend.validate.nullTest = "error";
keine_pruefung.AAM_AKZ_Verl.validate.nullTest = "disabled";
keine_pruefung.AAM_AKZ_Aend.access = "open";
keine_pruefung.AAM_AKZ_Verl.access = "readOnly";
} else if (this.rawValue == "Neuantrag") {
keine_pruefung.AAM_AKZ_Verl.presence = "visible";
keine_pruefung.AAM_AKZ_Aend.presence = "visible";
keine_pruefung.AAM_AKZ_Verl.validate.nullTest = "disabled";
keine_pruefung.AAM_AKZ_Aend.validate.nullTest = "disabled";
keine_pruefung.AAM_AKZ_Verl.access = "readOnly";
keine_pruefung.AAM_AKZ_Aend.access = "readOnly";
}
Eventuell ist da einiges doppelt gemoppelt, aber so habe ich es zum Laufen gebracht.