eigene Funktion schreiben

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

eigene Funktion schreiben

Beitrag von nele_sonntag » 26.01.2010, 09:26

Guten Morgen Ihr Lieben,

habe ein Problem :-(

Möchte mehrere Felder mit dem gleichen Skript überprüfen. Habe bisher immer die gleiche "IF-Abfrage" in das "EXIT-Ereignis" jedes Feldes geschrieben.

[suB]if(this.rawValue.length > 4){
    xfa.host.messageBox("Bitte nur vier Zeichen eingeben!", "Hinweis", 3, 1);
    this.rawValue = "";
}else{
}[/suB]

Nicht besonders professionell, da man dieses ja auch mit einer Funktion lösen kann.

Ich habe ein neues Skriptobjekt erzeugt und folgenden Code hinterlegt:

[suB]function feld_checken(){
    if(this.rawValue.length > 4){
        xfa.host.messageBox("Bitte nur vier Zeichen eingeben!", "Hinweis", 3, 1);
        this.rawValue = "";
    }else{
    }
}[/suB]

Leider funktioniert es bei mir nicht. Hat jemand eine Idee, wo der Fehler liegt? Zuhause arbeite ich mit LCD 8, das hochgeladene PDF wurde eben auf der Arbeit mit dem LCD 7 erzeugt.

Vielen Dank für Eure Hilfe,
liebe Grüße Mandy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
Elminster
Beiträge: 25
Registriert: 19.01.2010, 19:52

eigene Funktion schreiben

Beitrag von Elminster » 26.01.2010, 12:29

[sub]Hallo nele,

funktioniert nur probier es mal mit folgender Syntax in den Scripts.

function feld_checken()
{
    if(this.rawValue.length > 4) then      // raw.Value nicht nötig.
        xfa.host.messageBox("Bitte nur vier Zeichen eingeben!", "Hinweis", 3, 1);
        this.rawValue = "";
    endif
}

Gruß
Elminster
[/sub]

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

eigene Funktion schreiben

Beitrag von nele_sonntag » 26.01.2010, 13:32

Ok, dann schaue ich gleich mal.

Bei mir funktionieren nur die ersten beiden Textfelder, wo das Skript direkt im "Exit-Ereignis" liegt. Bei den letzten beiden funktioniert bei mir gar nichts. Und das geht bei Dir auch??

Benutzeravatar
Elminster
Beiträge: 25
Registriert: 19.01.2010, 19:52

eigene Funktion schreiben

Beitrag von Elminster » 26.01.2010, 13:39

Ersten beiden funktionieren!

Bei den beiden anderen, möchtest DU den Quellcode ja nur Outsourcen :)

Bei welcher Aktion Du diese aufrufen möchtest weiss ich nicht, habe sie ebenfalls auf Exit gelassen, also wenn Du das Feld verlässt.

Der Quellcode für die Funktion (wie gepostet), klappt bei mir.

Gruß
Elminster

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

eigene Funktion schreiben

Beitrag von nele_sonntag » 26.01.2010, 13:55

Ja, ich möchte tatsächlich nur "outsourcen", aber gerade das funktioniert ja nicht oder gibt er bei Dir bei den zwei unteren Feldern eine Meldung aus, wenn Du mehr als vier Zeichen eingibst? Bei mir macht er gar nix und lässt mich einfach gewähren.

LG Mandy

PS: Auch das "outgesourcte" Skript soll reagieren, wenn ich das Feld verlasse, also im "Exit-Ereignis" oder wäre auch hier etwas anderes sinnvoller?


Benutzeravatar
Elminster
Beiträge: 25
Registriert: 19.01.2010, 19:52

eigene Funktion schreiben

Beitrag von Elminster » 26.01.2010, 14:27

Die Syntax hast Du aber geändert ja? Wie oben?

Also bei mir meldet der dann, dass ich nicht mehr als 4 Zeichen eingeben darf und setzt das Feld auf null zurück.... wie im Script beschrieben!!

Poste doch nochmal ein überarbeitetes Script.

LG

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

eigene Funktion schreiben

Beitrag von nele_sonntag » 26.01.2010, 14:58

Es passiert leider NIX.

1. und 2. Textfeld (hier steht das Skript im EXIT-Ereignis des Textfeldes) wird eine Meldung ausgegeben.

3. und 4. Textfeld (hier wird die Funktion [suB][suP]"eig_funktionen.feld_checken();"[/suP][/suB] , die ich im Skriptobjekt (eig_funktionen) definiert habe aufgerufen. Aber es tut sich nix. Habe auch wie von Dir beschrieben nach dem "this" das "rawValue" weggelassen, aber es geht trotzdem nicht.

Noch eine andere Idee?

LG Mandy

Benutzeravatar
Elminster
Beiträge: 25
Registriert: 19.01.2010, 19:52

eigene Funktion schreiben

Beitrag von Elminster » 26.01.2010, 15:15

Ah ok i see....

Versuch mal den Funktionsaufruf mit dem Parameter des Feldes.

eig_funktionen.feld_checken(Seite1.TextField1);

bei Dir ist Seite1 unbenanntes Formularfeld oder so.

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

eigene Funktion schreiben

Beitrag von nele_sonntag » 27.01.2010, 11:17

Hallösche Elminster,

vielen Dank für Dein Engagement, aber leider war's das auch nicht :-(((

Hast Du oder jemand anderes noch eine Idee??

Danke,
Mandy

Benutzeravatar
Elminster
Beiträge: 25
Registriert: 19.01.2010, 19:52

eigene Funktion schreiben

Beitrag von Elminster » 27.01.2010, 11:47

Hi Nele, gern geschehen sorry das es nicht geklappt hat!!

Anbei aber nochmal meine Datei, die bei mir einwandfrei klappt kannste ja nochmal vergleichen ich glaub nit das unser LCD so verschieden iss! :)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten