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

Ob nun dynamisch agierende Subformulare, oder einfach nur Textfelder...
philippk
Beiträge: 15
Registriert: 15.07.2011, 17:48

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

Beitrag von philippk » 15.07.2011, 18:32

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

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

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

Beitrag von armine » 16.07.2011, 11:47

Hallo philippk,

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

vg armine

philippk
Beiträge: 15
Registriert: 15.07.2011, 17:48

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

Beitrag von philippk » 16.07.2011, 23:45

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?

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

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

Beitrag von armine » 17.07.2011, 06:04

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

philippk
Beiträge: 15
Registriert: 15.07.2011, 17:48

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

Beitrag von philippk » 17.07.2011, 08:29

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

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

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

Beitrag von armine » 17.07.2011, 10:18

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

philippk
Beiträge: 15
Registriert: 15.07.2011, 17:48

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

Beitrag von philippk » 17.07.2011, 17:32

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

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

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

Beitrag von armine » 18.07.2011, 07:46

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

philippk
Beiträge: 15
Registriert: 15.07.2011, 17:48

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

Beitrag von philippk » 18.07.2011, 16:11

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

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

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

Beitrag von armine » 18.07.2011, 16:50

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

Antworten