Seite 1 von 1

Optionsfeld in Textfeld - mit globalen Daten

Verfasst: 14.01.2021, 13:10
von netschlau
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 :)

Re: Optionsfeld in Textfeld - mit globalen Daten

Verfasst: 15.01.2021, 10:42
von netschlau
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?

Re: Optionsfeld in Textfeld - mit globalen Daten

Verfasst: 25.01.2021, 10:46
von netschlau
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

Re: Optionsfeld in Textfeld - mit globalen Daten

Verfasst: 25.01.2021, 13:23
von huber
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.

Re: Optionsfeld in Textfeld - mit globalen Daten

Verfasst: 26.01.2021, 09:04
von netschlau
Ok, super - vielen Dank.
So werde ich es dann mal probieren :)