Zurück ins Feld nach Validierung

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
tenakel
Beiträge: 25
Registriert: 24.11.2011, 10:19

Zurück ins Feld nach Validierung

Beitrag von tenakel » 28.04.2014, 20:11

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?

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Zurück ins Feld nach Validierung

Beitrag von nele_sonntag » 28.04.2014, 21:08

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

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Zurück ins Feld nach Validierung

Beitrag von nele_sonntag » 28.04.2014, 21:13

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. :)

tenakel
Beiträge: 25
Registriert: 24.11.2011, 10:19

Zurück ins Feld nach Validierung

Beitrag von tenakel » 29.04.2014, 07:48

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?

tenakel
Beiträge: 25
Registriert: 24.11.2011, 10:19

Zurück ins Feld nach Validierung

Beitrag von tenakel » 29.04.2014, 08:33

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

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Zurück ins Feld nach Validierung

Beitrag von nele_sonntag » 29.04.2014, 13:36

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

tenakel
Beiträge: 25
Registriert: 24.11.2011, 10:19

Zurück ins Feld nach Validierung

Beitrag von tenakel » 29.04.2014, 14:27

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

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Zurück ins Feld nach Validierung

Beitrag von nele_sonntag » 29.04.2014, 15:18

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

Antworten