Optionsfeld in Textfeld - mit globalen Daten

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
netschlau
Beiträge: 16
Registriert: 29.01.2008, 11:42

Optionsfeld in Textfeld - mit globalen Daten

Beitrag von netschlau » 14.01.2021, 13:10

Hallo,

ich habe in einem Formular Optionsfelder, die ich anklicken kann, dann wird ein entsprechendes Textfeld sichtbar.
Funktioniert soweit super.

Mein Problem ist aber, dass das Formular eine bzw. mehrere Duplikatseiten erhalten soll. Also alles was auf erster Seite auch auf der 2. bzw. 3. sein soll. Ich klicke Opt1 an und es wird auf der ersten Seite auch der Text "Option1" angezeigt, auf der 2. Seite ist dann automatisch auch Opt1 angeklickt es kommt aber kein Text.

Ich stelle das abgespeckte Formular mal zur Verfügung. Es wäre super, wenn mir hier jemand auf die Sprünge helfen kann.
Schonmal vielen Dank :)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

netschlau
Beiträge: 16
Registriert: 29.01.2008, 11:42

Re: Optionsfeld in Textfeld - mit globalen Daten

Beitrag von netschlau » 15.01.2021, 10:42

Hallo,

habe noch etwas getüftelt.
Beigefügt nochmal das Formular.
Ich habe auf der 1. Seite nun noch

xfa.resolveNode("Seite2.unten." + ["", "Option1", "Option2", "Option3"][this.rawValue]).presence = "visible" ;

eingefügt, damit es auf der 2. Seite natürlich auch angezeigt wird.

Das funktioniert jetzt auch. Wenn auf der 1. Seite aber z. B. Opt1 angeklickt wird und anschließend dann Opt2 ausgewählt wird, dann bleiben auf der 2. Seite beide Texte stehen (Option 1 Option 2).

Kann mir bitte jemand helfen?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

netschlau
Beiträge: 16
Registriert: 29.01.2008, 11:42

Re: Optionsfeld in Textfeld - mit globalen Daten

Beitrag von netschlau » 25.01.2021, 10:46

Hallo,

nochmal probiert. Jetzt funktioniert es wie gewünscht.
Aber - kann ich das Script vielleicht etwas zusammenfassen, da ich im "richtigen" Formular 16 Optionsfelder habe.

Code: Alles auswählen

 Formular1.Seite1.Optionsfeldliste::change - (JavaScript, client)
if(this.rawValue=="1") {
Seite1.unten.Option1.presence="visible";
Seite1.unten.Option2.presence="invisible";
Seite1.unten.Option3.presence="invisible";
Seite2.unten.Option1.presence="visible";
Seite2.unten.Option2.presence="invisible";
Seite2.unten.Option3.presence="invisible";
}
if(this.rawValue=="2") {
Seite1.unten.Option1.presence="invisible";
Seite1.unten.Option2.presence="visible";
Seite1.unten.Option3.presence="invisible";
Seite2.unten.Option1.presence="invisible";
Seite2.unten.Option2.presence="visible";
Seite2.unten.Option3.presence="invisible";
}
if(this.rawValue=="3") {
Seite1.unten.Option1.presence="invisible";
Seite1.unten.Option2.presence="invisible";
Seite1.unten.Option3.presence="visible";
Seite2.unten.Option1.presence="invisible";
Seite2.unten.Option2.presence="invisible";
Seite2.unten.Option3.presence="visible";
}
Hoffentlich kann mir jemand helfen :)
forum5.pdf
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
huber
Beiträge: 48
Registriert: 14.12.2015, 11:08

Re: Optionsfeld in Textfeld - mit globalen Daten

Beitrag von huber » 25.01.2021, 13:23

Im Grunde kannst du nicht mehr viel zusammenfassen, außer vielleicht noch einen switch case anstelle if einzufügen und Variablen für die Pfadnamen zu verwenden:

Code: Alles auswählen

var S1O1 = Seite1.unten.Option1;
var S1O2 = Seite1.unten.Option2;
var S1O3 = Seite1.unten.Option3;
var S2O1 = Seite2.unten.Option1;
var S2O2 = Seite2.unten.Option2;
var S2O3 = Seite2.unten.Option3;

switch (this.rawValue)
{
	case "1":
	S1O1.presence="visible";
	S1O1.presence="invisible";
	S1O1.presence="invisible";
	S2O1.presence="visible";
	S2O2.presence="invisible";
	S2O3.presence="invisible";
	break;
	
	case "2":
	S1O1.presence="invisible";
	S1O1.presence="visible";
	S1O1.presence="invisible";
	S2O1.presence="invisible";
	S2O2 .presence="visible";
	S2O3.presence="invisible";
	break;
	
	case "3":
	S1O1.presence="invisible";
	S1O1.presence="invisible";
	S1O1.presence="visible";
	S2O1.presence="invisible";
	S2O2.presence="invisible";
	S2O3.presence="visible";

	default:
	break;
}
Dennoch brauchst du auch hier 16 verschiedenen Fälle, da du ja auch 16 unterschiedliche Möglichkeiten der Darstellung vorliegen hast.

netschlau
Beiträge: 16
Registriert: 29.01.2008, 11:42

Re: Optionsfeld in Textfeld - mit globalen Daten

Beitrag von netschlau » 26.01.2021, 09:04

Ok, super - vielen Dank.
So werde ich es dann mal probieren :)

Antworten