Seite 1 von 1

Zurück ins Feld nach Validierung

Verfasst: 28.04.2014, 20:11
von tenakel
Hallo
Ich habe folgenden Code bisher verwendet, um nach der Validierung den Focus mit Hilfe des Exit-Events wieder ins betroffene Feld zu setzen:

Formular1.TF30.Erreichbar_von::validate - (JavaScript, client)
var a = this.rawValue >= 8 && this.rawValue <= 21
if (a == true)
true;
else
false



Formular1.TF30.Erreichbar_von::exit - (JavaScript, client)
if (a == false)
xfa.host.setFocus(this);


Das funktioniert aber mit dem neuen ES4 nicht mehr. Ich steige aber nicht dahinter, warum?

Weiss jemand Rat?

Zurück ins Feld nach Validierung

Verfasst: 28.04.2014, 21:08
von nele_sonntag
Dein PDF wäre hilfreich, aber ich gehe davon aus, dass "a" im exit undefined, weil unbekannt ist. Jep, das sagt der Debugger auch..und auch im ES2, es kann also nie funktioniert haben. :)

Abgesehen davon ist a schon ohne deine if-Abfrage, true oder false.

Siehst Du, wenn Du danach mal mit einem Alert "a" ausgeben lässt. :)

Code: Alles auswählen

var a = this.rawValue >= 8 && this.rawValue <= 21;
app.alert(a);
LG Mandy

Zurück ins Feld nach Validierung

Verfasst: 28.04.2014, 21:13
von nele_sonntag
Und warum überhaupt das validate dafür nutzen, gehe doch einfach ins exit:

Code: Alles auswählen

if (this.rawValue >= 8 && this.rawValue <= 21){
}else{
    app.alert("Nur...eingeben. Danke.");
    xfa.host.setFocus(this);
    this.rawValue = null;
}
Oder Du negierst den oberen Ausdruck..dann braucht's nur 1 Zeile.
Und iÜ würd eich natrlich die Falscheingabe wenigstens reseten und dem User erklären wieso. Sonst hagelt es Anrufe, von Usern, die glauben, das PDF wäre defekt. :)

Zurück ins Feld nach Validierung

Verfasst: 29.04.2014, 07:48
von tenakel
Hallo Nele,

danke für dein Antwort, das ist toll. Aber Du hast das genau richtig erkannt, "a" ist undefiniert - aber wie bekomme ich die Variable denn definiert?

Kannst Du mir da noch mal helfen?

Zurück ins Feld nach Validierung

Verfasst: 29.04.2014, 08:33
von tenakel
Hier ist meine Beispiel-Datei und wie man sieht, funktioniert das - genau so wie oben beschrieben. Ich versteh aber nicht, warum das im ES4 nicht mehr geht?

Zurück ins Feld nach Validierung

Verfasst: 29.04.2014, 13:36
von nele_sonntag
Indem Du es nicht in zwei unterschiedlichen Events benutzt, sondern so, wie ich es oben schon beschrieben habe. :)

Ansonsten geht es nur über eine globale Variable, da die überall bekannt ist..ist hier allerdings völlig unnötig, wenn Du mich fragst. :)

LG Mandy

Zurück ins Feld nach Validierung

Verfasst: 29.04.2014, 14:27
von tenakel
Hallo Nele,

ja, Du hast vollkommen Recht. Es macht mich aber wahnsinnig, wenn ich etwas nicht verstehe. Schau doch mal in meine Test.pdf, da gehts ja auch.

lg Rolf

Zurück ins Feld nach Validierung

Verfasst: 29.04.2014, 15:18
von nele_sonntag
Hej,
ja, es taucht tatsächlich im Debugger keine Fehlermeldung auf, aber nichtdestotrotz...Du solltest Dir erst gar nicht so eine unsaubere Syntax und Programmierweise angewöhnen. :(

Auch Deine freie Interpretation von IF-Abfragen und ständig fehlender Semikolons lassen mich gruseln.. :)

Ich arbeite nebenbei an etwas recht komplexem, vielleicht sehe ich deswegen den Wald vor lauter Bäumen nicht und die anderen haben noch eine Idee.

LG Mandy