Zeichenanzahl prüfen

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
Holm
Beiträge: 23
Registriert: 11.04.2011, 09:37

Zeichenanzahl prüfen

Beitrag von Holm » 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.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Holm
Beiträge: 23
Registriert: 11.04.2011, 09:37

Zeichenanzahl prüfen

Beitrag von Holm » 04.09.2017, 11:56

Hallo Forum,

ich konnte den Fehler finden. Java definiert die Vorgabe für das AKZ nicht mit 7 Zeichen , sondern nur mit 6. Ich denke der Bindestrich ist in diesem Zusammenhang kein Zeichen.

Mit folgendem Code im Senden Button klappt es.

Code: Alles auswählen

if(AAM_Antragsart.rawValue == "Verlängerung" )
{
        if ((keine_pruefung.AAM_AKZ_Verl.rawValue == null)||(keine_pruefung.AAM_AKZ_Verl.rawValue.length <= 6))
    {
        Valid = false;
        Sammelmeldung = Sammelmeldung + "- Das Aktenzeichen (AKZ) für die Antragsverlängerung" + "\n";        
    }
}

if(AAM_Antragsart.rawValue == "Änderung" )
{
        if((keine_pruefung.AAM_AKZ_Aend.rawValue == null)||(keine_pruefung.AAM_AKZ_Aend.rawValue.length <= 6))
    {
        Valid = false;
        Sammelmeldung = Sammelmeldung + "- Das Aktenzeichen (AKZ) für die Antragsänderung" + "\n";  
    }
}
Gruß J. Holm

Antworten