Seite 1 von 1

Alle Instanzen "Textfeld" ausblenden

Verfasst: 17.03.2022, 19:03
von tommy22
Hallo,

ich versuche bestimmte Textfelder auf mehreren Seiten auszublenden, was hierüber:

Code: Alles auswählen

	if (Kontrollkästchen.rawValue == false)
for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) { 
var oFields = xfa.layout.pageContent(nPageCount, "field"); 
var nNodesLength = oFields.length; 
 
// Set the field property. 
for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) { 
oFields.item(nNodeCount).presence = "invisible"; 
       Textfeld3.presence = "visible";
       Kontrollkästchen.presence = "visible";
       Page1.Textfeld1.presence = "visible";
       Page2.Textfeld1.presence = "visible";
} 
}
ausreichend funktioniert.

Jedoch gibt es auf Page2 10 weitere Textfelder (Textfeld4[0], Textfeld4[1] ...Textfeld4[9]).
Kann ich diese Felder zusammenfassend ansprechen und auf "visible" stellen, ohne dass ich den Code um 10 Einträge derart:
Textfeld4.presence = "visible";
Textfeld5.presence = "visible";
...
aufblähe?

Textfeld4[*].presence = "visible"; geht leider nicht :- ]

Vielen Dank vorab.

Re: Alle Instanzen "Textfeld" ausblenden

Verfasst: 28.03.2022, 15:25
von bds-oldie
Hallo tommy22,
ist das so wie im anliegenden Beispiel gemeint?
Mit freundlichen Grüßen
BDS-Oldie

Re: Alle Instanzen "Textfeld" ausblenden

Verfasst: 28.03.2023, 21:37
von radzmar
Da eh schon eine NodeList per For-Schleife abgearbeitet wird, kann man das gleich nutzen und mithilfe eines regulären Ausdrucks die gewünschten Feldnamen aussieben.

Code: Alles auswählen

for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) { 
var oFields = xfa.layout.pageContent(nPageCount, "field"); 
var nNodesLength = oFields.length; 
 
// Set the field property. 
for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) { 
oFields.item(nNodeCount).presence = "invisible"; 
   // Alle Felder, deren Name „Textfeld“ und „Kontroll“ enthalten, sichtbar machen.
    if (oFields.item(nNodeCount).name.match(/(Textfeld|Kontroll)/gi)) {
    oFields.item(nNodeCount).presence = "visible"; 
}
} 
}