Seite 1 von 2

Textfeld1 = Text1, jedoch nicht wenn es manuell gelöscht wird

Verfasst: 15.07.2011, 18:32
von philippk
Ein fröhliches Hallo an alle,

ich habe vor, den Text aus einem Textfeld in einen Textbaustein zu übertragen.
Dies funktioniert auch wunderbar. Nur wenn man den Text aus dem Textfeld wieder manuell löscht, bleibt der vorherige Text im Textbaustein stehen.
Ich habe schon versucht das ganze mit einer If-Anweisung zu regeln, aber irgendwie funktioniert es nicht. Folgenden Code habe ich bei "exit" hinterlegt.

Code: Alles auswählen

Text1.rawValue = this.rawValue;

if(this.rawValue==""){Text1.rawValue=""}
und

Code: Alles auswählen

Text1.rawValue = this.rawValue;

if(this.rawValue==null){Text1.rawValue=""}
Über eine Antwort wäre ich sehr dankbar

Textfeld1 = Text1, jedoch nicht wenn es manuell gelöscht wird

Verfasst: 16.07.2011, 11:47
von armine
Hallo philippk,

regele das doch im [font=courier new]calculate [/font]des Zielfeldes, was dort zu stehen hat.

vg armine

Textfeld1 = Text1, jedoch nicht wenn es manuell gelöscht wird

Verfasst: 16.07.2011, 23:45
von philippk
Hallo armine,

vielen Dank für deine schnelle Antwort.
Das Zielobjekt ist in meinem Fall ein "Text"-Objekt, da sind bei mir alle Einträge beim Scripting ausgegraut. Ist es möglich dort ein Script zu hinterlegen?
Textfeld -> Textfeld funktioniert (er übernimmt auch den Wert "null"/"" wenn nichts drin steht); Textfeld -> "Text"-Objekt funktioniert nicht. Gib es da eventuell noch einen anderen Lösungsansatz?

Textfeld1 = Text1, jedoch nicht wenn es manuell gelöscht wird

Verfasst: 17.07.2011, 06:04
von armine
Hallo philippk,

anbei das PDF mit div. Lösungsansätzen.
- Textfeld holt sich die Eingabe via [font=courier new]calculate [/font]in FormCalc
- Textfeld holt sich die Eingabe via [font=courier new]calculate [/font]in JavaScript
- Eingabefeld schreibt die Eingabe via [font=courier new]exit [/font]in FormCalc in ein Text-Objekt
- Eingabefeld schreibt die Eingabe via [font=courier new]exit [/font]in JavaScript in ein Text-Objekt

Die letzteren Ansätze haben den Vorzug, weniger ressourcenfressend zu sein.

vg armine

Textfeld1 = Text1, jedoch nicht wenn es manuell gelöscht wird

Verfasst: 17.07.2011, 08:29
von philippk
Hallo armine

Danke für die Auflistung der verschiedenen Lösungsansätze. Leider Funktioniert es nicht, wenn gar nichts im Text-Objekt steht. Wenn man aber in deinem Beispiel "Text im Eingabefeld: " durch " "(Leerzeichen) im "Text"-objekt ersetzt funktioniert es, da scheinbar "null" drinsteht. man hat halt nur einen Einzug eines Leerzeichens. Aber ich denke ich werde die Variante mit Textfeld -> Textfeld nehmen und das Zweite, wie du es gemacht hast auf schreibgeschützt setzten und es entsprechend formatieren, damit es wie ein Text-Objekt aussieht

Nochmals vielen Dank für deine Bemühungen.

Viele Grüße
Philipp

Textfeld1 = Text1, jedoch nicht wenn es manuell gelöscht wird

Verfasst: 17.07.2011, 10:18
von armine
Hallo Philipp,

natürlich kann man auch ein leeres Text-Objekt als Ziel der Ausgabe verwenden und [font=courier new]null [/font]meint wirklich nichts, auch nicht "", also einen leeren String.

Viele Grüße
armine

Textfeld1 = Text1, jedoch nicht wenn es manuell gelöscht wird

Verfasst: 17.07.2011, 17:32
von philippk
hallo armine,
das ist schon kurios, ich habe jetzt eine Variante, bei der es mit dem Text-Objekt als Zielfeld funktioniert. (s. Anhang) aber einfacher habe ich es nicht hinbekommen.

Funktioniert:

Code: Alles auswählen

Text1.rawValue = ""+this.rawValue; 
if(this.rawValue == null){Text1.presence="hidden"} else {Text1.presence="visible"};
Wenn man das Text-Objekt nicht ausblendet, steht "null" drin.

Funktioniert leider nicht (wenn Textfeld manuell gelöscht wird, steht vorheriger Text noch drin)

Code: Alles auswählen

Text1.rawValue = this.rawValue;

Textfeld1 = Text1, jedoch nicht wenn es manuell gelöscht wird

Verfasst: 18.07.2011, 07:46
von armine
Hallo Philipp,

in der Tat darf im Text-Objekt nie null stehen, "" (leerer String) ist aber i.O.

anbei nochmals das PDF mit (weiteren) Lösungsansätzen.
- Textfeld holt sich die Eingabe via [font=courier new]calculate [/font]in FormCalc
- Textfeld holt sich die Eingabe via [font=courier new]calculate [/font]in JavaScript
- Eingabefeld schreibt die Eingabe via [font=courier new]exit [/font]in FormCalc in ein Text-Objekt
- Eingabefeld schreibt die Eingabe via [font=courier new]exit [/font]in JavaScript in ein Text-Objekt
- das Eingabefeld sowie zwei schreibgeschützte Duplikate übernehmen
     per Datenbindung "global" die Eingabe im Eingabefeld
- eines der Duplikate versteckt sich per Skript, wenn das Eingabefeld leer ist

Die Ansätze im [font=courier new]exit[font=verdana]-Ereignis [/font][/font][font=verdana]h[/font]aben den Vorzug, weniger ressourcenfressend zu sein.

vg armine

Textfeld1 = Text1, jedoch nicht wenn es manuell gelöscht wird

Verfasst: 18.07.2011, 16:11
von philippk
Hallo armine,
tolle Sache.

Code: Alles auswählen

this.rawValue ? Text1.rawValue = this.rawValue : Text1.rawValue = ""
ist genau das wonach ich gesucht habe. Kannst du bitte kurz erläutern welche Funktion das "?" und der

Code: Alles auswählen

":" haben?

Vielen Dank und beste Grüße
Philipp

Textfeld1 = Text1, jedoch nicht wenn es manuell gelöscht wird

Verfasst: 18.07.2011, 16:50
von armine
Hallo Philipp,

der Ausdruck ist gemäß [font=courier new]condition ? true : false[/font] die Kurzfassung von
[font=courier new]if (condition) {
   mach das
} else {
   mach jenes
}

[/font]Für mehr: frag’ Google nach "javascript shorthand".

Gruß
armine