Expand my Community achievements bar.

SOLVED

Hidden and Visible on Add Instance Object

Avatar

Level 3

I have an object that will increase by one with an Add Instance button.

I have a check box that will toggle hidden/visible.

Only the first instance can be hidden/visible... why not the rest?

 

check box / click: 

if(this.rawValue == "1")
{

form1.P1.wrap.textfield2[*].presence = "hidden";

}

 

I tried to loop it:

if(this.rawValue == "1")
{
for (var i = 0; i < xfa.host.numPages; i++){var oSubform = xfa.resolveNode("form1.P1[" + i + "]");oSubform.wrap.textfield2.presence = "hidden";}
}

 

Help!

Thank you in advance

1 Accepted Solution

Avatar

Correct answer by
Level 10

You're addressing the fields the wrong way. 

I' guessing that the subform "wrap" is the one, that contains the textfield and is going to be repeated, right?

The loop than should look this way: 

 

var cSel = this.rawValue,
	oFields = xfa.resolveNodes("form1.P1.wrap[*].textfield2"), // wrap[*] means every instance of the subfom wrap. 
	i;

for (i = 0; i < oFields.length; i += 1) {
	oFields.item(i).presence = cSel == "1" ? "visible" : "hidden";
}

 

View solution in original post

2 Replies

Avatar

Correct answer by
Level 10

You're addressing the fields the wrong way. 

I' guessing that the subform "wrap" is the one, that contains the textfield and is going to be repeated, right?

The loop than should look this way: 

 

var cSel = this.rawValue,
	oFields = xfa.resolveNodes("form1.P1.wrap[*].textfield2"), // wrap[*] means every instance of the subfom wrap. 
	i;

for (i = 0; i < oFields.length; i += 1) {
	oFields.item(i).presence = cSel == "1" ? "visible" : "hidden";
}

 

Avatar

Level 3
Thank you, thank you radzmar. Once again you helped out so much!