Hintergrundfarbe eines Textfeldes ändern | Community
Skip to main content
Level 2
September 14, 2023
Solved

Hintergrundfarbe eines Textfeldes ändern

  • September 14, 2023
  • 1 reply
  • 1489 views

Hallo Zusammen, da ich den Adobe Experience Manager - Froms (Designer) nicht finden kann, poste ich mal hier.

Ich erstelle pdf Formulare. Ich möchte, das ein Feld beim reinklicken die Farbe ändert. Ich finde nicht, wo das geht. Bzw. wenn ich versuche Aktionen einzufügen, also wenn "ist" oder "ist eingegeben" oder sowas, und dann "Hintergrundfarbe ändern" einstelle, passiert leider nichts. Wenn ich es mit der Vordergrundfarbe versuche, ändert sich die Schriffarbe, was mir keinen Sinn macht. Ich kann generell bei den Einstellungen nur die Rahmenfarbe des Kästchens (was per default grau ist) ändern, dann ändert sich interessanterweise auch die Füllung wenn man reinklickt. Aber ich will keinen Rahmen haben und schon garnicht dauerhaft in der Farbe. Ich verstehe leider die Logik nicht und kann nicht finden wie ich das machen kann. Vielleicht kann jemand helfen?

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by radzmar

Guten Morgen,

 

ich war leider krank, daher habe ich mich nicht damit beschäftigt.

Ich hätte gerne, das das Feld die Farbe ändert wenn ich reinklicke. Mir ist egal welcher Text dann eingegeben wird, die Farbe soll sich dann nicht ändern. Wenn das Textfeld verlassen wird, dann wieder die alte Farbe.

Wie mache ich das?

Außerdem, sorry ich habe einfach echt keine Ahnung, was ist das Change Event meines Feldes?


Designer hat einen Skript-Editor, in dem man Skripte für viele unterschiedliche Ereignisse für z.B. Felder in dem Formular hinterlegen kann. Diesen kann man mit [Strg]+[Shift]+[F5] ein- und ausblenden. 

 

Zum Ändern der Farbe ein Erreichen und Verlassen des Feldes musst Du im enter und exit Event jeweils ein Skript hinterlegen.

this.ui.oneOfChild.border.fill.color.value = "255,0,0"; // Eingabebereich rot färben

 

 

 

1 reply

radzmar
Level 10
September 25, 2023

Ich gehe mal davon aus, dass Du mit dem Designer die PDFs erstellst?! Alle Felder dort sind Container mit mehrere Elemente, die alle separat gesteuert werden können. Ein Textfeld beispielsweise kann man komplett färben oder auch nur den Eingabebereich davon. Diese Elemente kann man per Scripting adressieren. Der Hintergrund des Feldes etwa kann mit this.border.fill.color.value adressiert werden, der Eingabebereich mit this.ui.oneOfChild.border.fill.color.value.

 

Um die Farbe bei der Eingabe zu ändern, benutze ein Skript im change-Event des Feldes:

this.ui.oneOfChild.border.fill.color.value = xfa.event.fullText === "Test" ? "204,255,255" : "255,255,255";

 

 

FengareAuthor
Level 2
September 26, 2023

Danke für die Antwort. Noch einmal bitte für blöde.

Ich ersetzte

this.ui.oneOfChild.border.fill.color.value

durch den Namen meines Feldes.

Was ersetzte ich für "Test"? In meinem Feld steht ja nichts und es hat keinen extra Namen. Oder bleibt Test bestehen?

Noch etwas?

Beim ersten Versuch (mit "Test") ändert sich die Farbe nicht.

radzmar
Level 10
September 26, 2023

Ähm nein. Du kopierst das Skript in das change-Event deines Feldes. Das Wort this referenziert dabei auf dieses Feld und von da aus dann auf das Unterelement ui und dessen Unterelement oneOfChild usw. 

 

Anstatt "Test" gibst Du halt das Wort an, bei dem sich die Farbe des Feldes ändern soll. Welche Farbe es dabei erhalten soll gibst Du danach als RGB-Wert an, also irgendetwas zwischen "0,0,0" und "255,255,255". Der zweite Farbwert gibt die Farbe an, die das Feld haben soll, wenn nicht das gesuchte Wort eingegeben wurden, in diesem Fall "255,255,255", also Weiß.

this.ui.oneOfChild.border.fill.color.value = xfa.event.fullText === "Test" ? "204,255,255" : "255,255,255";