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 » 27.01.2010, 15:08

He, Du bist der Beste!!!
Hab vielen Dank!!

Ein paar Änderungen hast Du aber doch vorgenommen, die ich nicht hatte.
Beim Funktionsaufruf (wie Du mir schon gesagt hattest) als Parameter den Wert des jeweiligen Feldes übergeben,

also  falsch von mir:[indent][sub]eig_funktionen.feld_checken();[/sub]
[/indent][sup][sub]
[/sub][/sup] und richtig von Dir:[sup][sub]
[/sub][/sup][indent][sub]e[/sub][sub]ig_funktionen.feld_checken(Seite1.TextField3);[/sub]
[/indent][sup][sub]
[/sub][/sup]Was ich nicht wusste, dass man in der beschriebenen Funktion noch "obj" schreiben musste.

also  falsch von mir:[indent]function feld_checken(){
    if(this.length > 4) then
        xfa.host.messageBox("Bitte nur vier Zeichen eingeben!", "Hinweis", 3, 1);
        this.rawValue = "";
    endif   
}

[/indent]und richtig[sup][sub] [/sub][/sup]von Dir:[sup][sub]
[/sub][/sup][sup][sub] [/sub][/sup][indent]function feld_checken(obj){
    if(obj.length > 4) then
        xfa.host.messageBox("Bitte nur vier Zeichen eingeben!", "Hinweis", 3, 1);
        obj.rawValue = "";
    endif   
}
[/indent] Wenn ich Dich noch ein bisschen strapazieren dürfte.
  • Kannst Du mir nur noch sagen, wann ich einen Parameter übergeben muss?
  • Ich habe hier im Forum schon Funktionen gesehen, die haben keine übergeben.
  • Ist das, weil ich mit keiner Variablen arbeite, die ich innerhalb der Funktion definiere?
  • Würde ich das in ähnlichen Fällen dann immer so lösen? Innerhalb der Funktion mit "obj"? Und bei Funktionaufruf den Wert des jeweigen Feldes auslesen?
Liebe Grüße aus Frankfurt,
Mandy

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

eigene Funktion schreiben

Beitrag von Elminster » 27.01.2010, 15:45

Hi Nele, ob das auch ohne Übergabeparameter funktionieren KÖNNTE, weiss ich nicht.

Du hast einen FUnktionsaufruf nach einer gewissen Handlung.
In dem Fall war es ja das EXIT.

Die Funktion wird aufgerufen und tut irgendetwas ABER WO?

obj war nur ein Variablennamen, mit dem die Funktion weiterarbeiten kann. Hättest das auch Hans, Peter oder Heizung nennen können.
Ob das unter LCD auch ohne Parameterübergabe funktionieren KÖNNTE, weiss ich nicht ich nehme mal an JA, wenn man in der Funktion sagt, welchen genauen Pfad diese funktion auswerten und füllen soll.

Allerdings fällt dann der Sinn einer Funktion weg, da diese dann nicht von mehreren Orten aus aufgerufen werden kann, da ja ein fester PFAD in dieser Funktion steht.
Somit hättest Du es auch da lassen können wo es war.

Nochmal kurz zu Deinen Punkten explizit.

Kannst Du mir nur noch sagen, wann ich einen Parameter übergeben muss?
Wenn der Parameter Informationen enthält, mit denen die Funktion nach dem Aufruf weiter arbeiten muss. In dem Fall obj = Zeile1.Textfeld3.

 Ich habe hier im Forum schon Funktionen gesehen, die haben keine übergeben.
Gute Frage, meiner Meinung nach nur zum Outsourcen undurchsichtigen Quellcodes zu gebrauchen. Lasse mich da aber gerne von den Experten nochmal belehren.

Ist das, weil ich mit keiner Variablen arbeite, die ich innerhalb der Funktion
definiere?

Variablendefinitionen in einer Funktion bleiben auch NUR in der Funktion erhalten oder müssen explizit zurückgegeben werden. Eine Funktion ohne Parameterübergabe, brauch zur Ausführung KEINE Externen Daten.

Würde ich das in ähnlichen Fällen dann immer so lösen? Innerhalb der Funktion mit "obj"? Und bei Funktionaufruf den Wert des jeweigen Feldes
auslesen?

Genau, wie DU das Kind schimpfst ist wie oben schon geschrieben egal. Aber wenn Du in einer Funktion mit einem exakten Wert weiterarbeiten willst, musst DU diese Daten der Funktion durch übergabe zugänglich machen, um sie weiter zu verarbeiten.

--------------------------------------------------------------------------------------------------------------
Ich hänge DIr nochmal die Datei an mit einer Funktion die KEINE Übergabe braucht.

Also egal ob DU etwas in Feld 1 oder Feld 4 eingibst, ein Textfeld wird unabhängig davon mit dem Wort DREI gefüllt.

Die Funktion tut Ihren dienst und brauch keine WERTE, denn sie tut immer das selbe... schaus Dir einfach mal an!

Hoffe ich konnte Dir bissel helfen... allzulang mach ich das mit LCD auch noch nit. Daher alle Wahscheinlichkeitsaussagen ohne Gewähr :)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

eigene Funktion schreiben

Beitrag von walde » 27.01.2010, 21:53

Hallo nele_sonntag,

 

Anbei Ihre Beispieldatei. Habe 2 Möglichkeiten zur Überprüfung eingesetzt. 1. Möglichkeit befindet sich im Exit Event der Felder 3 und 4, wie von Ihnen ausgearbeitet. Die 2. Möglichkeit befindet sich im Change Event der Felder 1 und 2.

 

Gruß,

 

Walde
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:

eigene Funktion schreiben

Beitrag von nele_sonntag » 29.01.2010, 14:23

Hallo Walde,

vielen lieben Dank, dass Du meiner Bitte nachgekommen bist und vielen Dank für diesen "anderen" vermutlich zehnmal prof. Lösungsansatz !!

Liebe Grüße aus dem heut verschneiten Frankfurt,

Mandy

 

Antworten