Seite 1 von 2

Optionsfeld deluxe

Verfasst: 22.06.2009, 09:00
von cruzzzi
Hi,

ein Problem gelöst, doch schon taucht das nächste auf.

Ich habe jetzt ein Gruppe von Optionsfeldern von denen immer nur genau eines aktiviert werden kann. Jetzt möchte ich erreichen, dass nicht nur immer nur 1 aktiviert werden kann, sondern auch keines; ich also meine Aktivierung rückgängig machen kann. Lässt sich das umsetzen?

Schonmal Danke und beste Grüße im Voraus

Optionsfeld deluxe

Verfasst: 22.06.2009, 18:43
von walde
Hallo cruzzzi,

 

Meiner Meinung nach ist es einfacher Kontrollkästchen für dieses Vorhaben einzusetzen. Mit nachfolgendem Script funktioniert es sehr gut.

Code: Alles auswählen

Formular1.#subform[0].Kontrollkästchen.Kontrollkästchen1::change - (JavaScript, client)
Scripte.ValueChange(this);
Formular1.#subform[0].Kontrollkästchen.Kontrollkästchen2::change - (JavaScript, client)
Scripte.ValueChange(this);
Formular1.#subform[0].Kontrollkästchen.Kontrollkästchen3::change - (JavaScript, client)
Scripte.ValueChange(this);

Formular1.#variables[0].Scripte - (JavaScript, client)
function ValueChange(Kontrollkst){
var Kaestchen = xfa.resolveNode("Formular1.#subform[0]").Kontrollkästchen;
var oFields = Kaestchen.nodes;
var nodesLength = oFields.length;

for (var j = 0; j < nodesLength; j++) {
var oItem = oFields.item(j);
if(oItem.name != Kontrollkst.name){
oItem.rawValue = 0;
}
}
}
 

gruß,

 

Walde

Optionsfeld deluxe

Verfasst: 29.10.2009, 08:32
von FabianS
Hallo zusammen,

ich habe auch ein kleines Problem.

Also ich habe das Script auch bei mir eingefügt.

Klappt auch wunderbar. Aber was ist wenn ich diese "Gruppe" von Kontrollkästchen in meinem Dokument mehrfach benötige. Wie funktioniert es dann? Das Script einfach runter kopieren und einfach nur den Namen des Teilformulars jeweils ändern?

Da meine Kenntnisse in JS nicht sehr gut sind, ist es für nen Profi bestimmt ne sehr einfache Frage...

Gruß Fabian

Optionsfeld deluxe

Verfasst: 29.10.2009, 17:20
von walde
Hallo FabianS,

 

Wenn Sie mehrere Gruppen von Kontrollkästchen haben so funktioniert es mit einer kleinen Modifikation des Scripts auch. Siehe Beipieldatei und Script.

Code: Alles auswählen

Formular1.#subform[0].Gruppe1.Kontrollkästchen1::change - (JavaScript, client)
Scripte.ValueChange(this, "Gruppe1");
Formular1.#subform[0].Gruppe1.Kontrollkästchen2::change - (JavaScript, client)
Scripte.ValueChange(this, "Gruppe1");
Formular1.#subform[0].Gruppe1.Kontrollkästchen3::change - (JavaScript, client)
Scripte.ValueChange(this, "Gruppe1");
Formular1.#subform[0].Gruppe2.Kontrollkästchen4::change - (JavaScript, client)
Scripte.ValueChange(this, "Gruppe2");
Formular1.#subform[0].Gruppe2.Kontrollkästchen5::change - (JavaScript, client)
Scripte.ValueChange(this, "Gruppe2");
Formular1.#subform[0].Gruppe2.Kontrollkästchen6::change - (JavaScript, client)
Scripte.ValueChange(this, "Gruppe2");
Formular1.#subform[0].Gruppe3.Kontrollkästchen7::change - (JavaScript, client)
Scripte.ValueChange(this, "Gruppe3");
Formular1.#subform[0].Gruppe3.Kontrollkästchen8::change - (JavaScript, client)
Scripte.ValueChange(this, "Gruppe3");
Formular1.#subform[0].Gruppe3.Kontrollkästchen9::change - (JavaScript, client)
Scripte.ValueChange(this, "Gruppe3");

Formular1.#variables[0].Scripte - (JavaScript, client)
function ValueChange(Kontrollkst, Teilform){
var Kaestchen = xfa.resolveNode("Formular1.#subform[0]." + Teilform);
var oFields = Kaestchen.nodes;
var nodesLength = oFields.length;
for (var j = 0; j < nodesLength; j++) {
var oItem = oFields.item(j);
if(oItem.name != Kontrollkst.name){
oItem.rawValue = 0;
}
}
}
 

Gruß,

 

Walde


Optionsfeld deluxe

Verfasst: 02.11.2009, 16:43
von FabianS
Hallo,

vielen Dank für das Script. Es klappt wunderbar.

Aber ich habe nun doch ein Problem. Vorher hatte ich dies mit den Optionsfeldern gemacht. Da diese durch Klick sich nicht mehr deaktivieren ließen, bin ich dann auf die Kontrollkästchen umgestiegen.

Ich habe nun festgestellt, dass sich Kontrollkästchen aber nicht als Pflichtfeld ausweisen lassen. Gibt es dort irgendwie eine Möglichkeit?

Danke und Gruß

Fabian

Optionsfeld deluxe

Verfasst: 03.11.2009, 14:17
von walde
Hallo FabianS,

 

Man kann vor dem Versenden oder Ducken des Formulars per Schleife die Felder bzw. Kästchen auf Werte prüfen und bei Bedarf eine Meldung ausgeben, dass in Feldern bzw. Kästchen noch keine Auswahl getroffen wurde.

 

Gruß,

 

Walde

Optionsfeld deluxe

Verfasst: 04.11.2009, 11:38
von FabianS
Hallo,

wie wird denn diese Schleife gemacht? Ich kann bisher nur ein Feld auf Eingaben überprüfen und dann kommt eine Meldung. Aber mehrere, das habe ich noch nicht geschafft.

Optionsfeld deluxe

Verfasst: 05.11.2009, 00:15
von walde
Hallo FabianS,

 

Eine Schleife ist nicht schwer. Siehe Beispieldatei, die mit Acrobat und Reader 9 getestet wurde.

Einige Fragen habe ich noch.

Auf welche Werte sollen die Kontrollfelder überprüft werden? "An", "Aus" oder "Neutral"? Soll eine Gruppe von Kontrollfeldern überprüft werden?`

 

Gruß,

 

Walde

Optionsfeld deluxe

Verfasst: 05.11.2009, 16:10
von FabianS
Es soll schon der Wert "An" überprüft werden. Beziehungsweise auch eine Gruppe.

Optionsfeld deluxe

Verfasst: 05.11.2009, 23:47
von walde
Hallo FabianS,

 

Anbei eine Beispieldatei, welche auch Kontrollkästchen und Gruppen überprüft.

 

Gruß,

 

Walde