Skip to main content
Inspiring
April 16, 2021
Answered

Is it possible to concatenate string+text field or only 2 textFields?

  • April 16, 2021
  • 1 reply
  • 1658 views

Hello everyone,

I hope I can make myself clear here.

 

I have a text field (let´s say TextField1) that I am using to display a sentence.

Depending on the user´s choice, I need to add a phrase to TextField1.

Also, I need this phrase to have a different colour and appears in line with TextField1.

Is is possible to create a string (no text field) within a variable, change its colour and later

add it to the text field, or

I need to create 2 text fields (sentence + phrase with new colour) for this purpose.

 

Thanks a lot for you reply in advance.

This topic has been closed for replies.
Correct answer Nesa Nurani

Thanks you very much. It worked fine.

 

One more thing: Now, I´m trying to disable/lock the textfield, after the final answer is displayed

to avoid unintentional clicks. I`m trying the following script in "On Focus":

 

var c = this.getField("Text1").value;

if "c == "The day was beautiful and Jack wanted to swim in the river.");

{ c.readonly = true };

 

But it is not working....

 

Any idea what I may be doing wrong?

Thanks a lot !!

 

 


You have few errors in code, try like this:

var c = this.getField("Text1");
if (c.value == "The day was beautiful and Jack wanted to swim in the river.")
c.readonly = true ;

1 reply

Nesa Nurani
Community Expert
April 16, 2021

You could achive it if you set field to 'allow rich text formatting' and either change text color manually after you add it to the field by selecting text and pressing CTRL+E and then selecting color  or with code by using 'span' properties.

Inspiring
April 16, 2021

Thanks a lot for you help!!

I couldn´t  quite figure out how to execute the first method. If you could send me a step-by-step for fuuture reference, it would make things a lot easier for me.

 

In addition, I have been trying to use the span method. Eventually, I wrote the following script, but so far I´m not getting the result I expected. NOTE: The display in the text field is going to be triggered by a radio button.

 

Thanks in advance for your help!

 

var f = this.getField("Texto1").value;
var spans = new Array();

spans[0] = new Object();
spans[0].text = "The day was beautiful and Jack wanted to swim";
spans[0].textColor = ["RGB", 128/255,0,0];
spans[0].strokeColor = ["T"];
spans[0].fillColor = ["T"];

 

spans[1] = new Object();
spans[1].text = " in the river.";
spans[1].textColor = color.red;
spans[1].strokeColor = ["T"];
spans[1].fillColor = ["T"];

 

if(this.getField("Group12") == "Choice3") {

app.alert("Correct Answer. Congratulations!", 3,0);

f.richValue = spans;

}

Nesa Nurani
Community Expert
April 16, 2021

Change this line:

var f = this.getField("Texto1").value;

to this:

var f = this.getField("Texto1");

and this:

if(this.getField("Group12") == "Choice3") {

to this:

if(this.getField("Group12").valueAsString == "Choice3") {

Also don't forget to check 'Allow rich text formatting' in text field properties under 'options' tab.

 

For the first method, also ''Allow rich text formatting' then select text which you won't to change color in your field and press CTRL+E to spawn toolbar, on that toolbar you can select color(and other options) for your text.