Alle Instanzen "Textfeld" ausblenden

Ob nun dynamisch agierende Subformulare, oder einfach nur Textfelder...
Antworten
tommy22
Beiträge: 1
Registriert: 11.05.2021, 21:09

Alle Instanzen "Textfeld" ausblenden

Beitrag von tommy22 » 17.03.2022, 19:03

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.

Benutzeravatar
bds-oldie
Beiträge: 137
Registriert: 21.02.2019, 10:37

Re: Alle Instanzen "Textfeld" ausblenden

Beitrag von bds-oldie » 28.03.2022, 15:25

Hallo tommy22,
ist das so wie im anliegenden Beispiel gemeint?
Mit freundlichen Grüßen
BDS-Oldie
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
radzmar
Beiträge: 961
Registriert: 26.10.2011, 10:18

Re: Alle Instanzen "Textfeld" ausblenden

Beitrag von radzmar » 28.03.2023, 21:37

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"; 
}
} 
}

Antworten