[GastForen Programme Web/Internet PDF Grundlagen / Web / eForms Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Web/Internet - Webdesign, eForms
Themen
Beiträge
Moderatoren
Letzter Beitrag

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

sacrifice_87
Beiträge gesamt: 7

27. Apr 2015, 12:21
Beitrag # 1 von 17
Bewertung:
(15724 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich hoffe ihr könnt mir helfen, denn ich versuche mich bei Acrobat (X, Vers. 10.1.13.16) in Javascript einzuarbeiten und habe für die folgende Frage leider für mich nichts verständliches gefunden in diversen Foren/API References.

Ich möchte mit dem Kontrollkästchen "A" eine Gruppe von Kontrollkästchen deaktivieren und ausblenden. Wenn "A" aber wieder deaktiviert wird, sollte man die anderen Kontrollkästchen einzeln wieder anwählen können.

(Hintergrund, warum es wichtig ist, dass die Felder auch deaktiviert werden: Ich habe jedes Feld mit Zahlen hinterlegt, die in einem Summenfeld zusammengezählt werden, "A" wäre ein "Alle"-Feld, wenn man aber jetzt nicht alle anwählen möchte, wird im Summenfeld nur das jeweils andere Kästchen zusammengezählt. Da aber dabei auch die Kombination offen ist, dass "A" zu allen auch nochmals dazu gezählt werden kann, müssten bei einem Aktivierten "A" alle anderen gesperrt/deaktiviert werden).

Ich habe es bisher - dank diversen Postings - geschafft, die Felder auszublenden/Einzublenden wenn "A" aktiviert wird. Allerdings schaffe ich es nicht, dass die Felder deaktiviert werden:

Script in "A"
Code
if (event.target.value == "Off")  
this.getField("GRUPPE").display = display.visible;
else this.getField("GRUPPE").display = display.hidden;



Ich habe es unter anderem mit diesem Code hier versucht zu ergänzen:
https://answers.acrobatusers.com/...checkbox-q17478.aspx

Jedoch hat er mir den Befehl "ON" statt "OFF" nicht genommen, eventuell ein Denkfehler meinerseits? "True" "False" habe ich auch ausprobiert. In den API References habe ich den Befehl "checkThisBox " gefunden, hier bin ich aber nicht wirklich weit gekommen?

Könnt ihr mir hier bitte helfen? Das wäre sehr lieb. Ich hoffe ich hab mich halbwegs verständlich ausgedrückt, sorry falls nicht.
X

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

MurphysLaw
Beiträge gesamt: 588

27. Apr 2015, 13:35
Beitrag # 2 von 17
Beitrag ID: #539177
Bewertung:
(15701 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hast Du es auch schon mit "enabled" versucht? Das sollte eigentlich die richtige Property sein.

Außerdem kannst Du das ganz einfach kürzer machen/togglen:
Code
this.getField("GRUPPE").enabled == (event.target.value == "Off"); 


;-)

Grüße,
Murphy


als Antwort auf: [#539175]

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

sacrifice_87
Beiträge gesamt: 7

27. Apr 2015, 16:16
Beitrag # 3 von 17
Beitrag ID: #539182
Bewertung:
(15637 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen herzlichen Dank für die wirklich rasche Antwort.

"Enabled" hatte ich noch nicht probiert, muss ich auch gestehen habe ich bisher nicht gefunden. Allerdings hat es leider nicht funktioniert, weder mit dem "OFF" (auch mit "On" oder "Yes" nicht) noch mit dem verkürzten Code.
Die weiteren Felder werden nicht deaktiviert, hab das mal bei einer zweiten Gruppe ("KOMBO") ausprobiert. Ich habe hier einmal das PDF angehängt.
Werde aber noch etwas mehr in dem Acrobat API Preferences suchen, eventuell hab ich hier einen Denkfehler :(


AnsichtPdf http://we.tl/EnDQmRuMNt
(Über wetransfer.com)



Code
//------------------------------------------------------------- 
//-----------------Bearbeiten Sie nicht die XML-Tags--------------------
//-------------------------------------------------------------

//<AcroForm>
//<ACRO_source>A:Annot1:MouseUp:Action1</ACRO_source>
//<ACRO_script>
/*********** gehört zu: AcroForm:A:Annot1:MouseUp:Action1 ***********/
if (event.target.value == "Off")
this.getField("GRUPPE").display = display.visible;
else this.getField("GRUPPE").display = display.hidden;
//</ACRO_script>
//</AcroForm>

//<AcroForm>
//<ACRO_source>I:Annot1:MouseUp:Action1</ACRO_source>
//<ACRO_script>
/*********** gehört zu: AcroForm:I:Annot1:MouseUp:Action1 ***********/
this.getField("KOMBO").enabled == (event.target.value == "OFF");
//</ACRO_script>
//</AcroForm>



als Antwort auf: [#539177]

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

MurphysLaw
Beiträge gesamt: 588

27. Apr 2015, 17:19
Beitrag # 4 von 17
Beitrag ID: #539185
Bewertung:
(15619 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Jahaaa. Wenn man's testen kann, geht's gleich leichter! :-)
==>readonly heißt der Knabe.

Und so geht's dann auch mit diesem simplen Einzeiler:
Code
this.getField("GRUPPE").readonly = (event.target.value == "Off"); 


;-)

Viele Grüße,
Murphy


als Antwort auf: [#539182]

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

sacrifice_87
Beiträge gesamt: 7

28. Apr 2015, 11:59
Beitrag # 5 von 17
Beitrag ID: #539214
Bewertung:
(15531 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen herzlichen Dank!
Mit dem "readonly" Hinweis habe ich es hinbekommen.
Jedoch habe ich dann gemerkt, dass wenn man zuvor die unteren Felder anklickt, diese aktiviert bleiben. Das würde dann über die "Endsumme" hinausgehen und da ich gerade am "Lernen" bin habe ich dann ausprobiert, ob ich die Felder von einem Kontrollkästchen aus aktivieren kann. Wenn ich so unverschämt sein darf, würde ich gerne noch hier eine Frage dazu äußern:

Ich habe das mit dem Befehl "checkThisBox" ausprobiert. Das hat auch gut geklappt, nur kann es sein, dass bei diesem Befehl die Gruppen nicht funktionieren? Oder muss ich die dann anders bezeichnen?

Auszug aus dem Code (leider kein Einzeiler):
Code
if (this.getField("FELD.I").value !=="OFF") 
getField("GROUPI.J").checkThisBox(0,true);
getField("GROUPI.K").checkThisBox(0,true);
getField("GROUPI.L").checkThisBox(0,true);
getField("GROUPI.M").checkThisBox(0,true);
getField("GROUPI.N").checkThisBox(0,true);
getField("GROUPI.O").checkThisBox(0,true);
getField("GROUPI.P").checkThisBox(0,true);


Bei "GROUPI" schreibt er keine Fehlermeldung, jedoch wählt er aber
auch kein anderes Kontrollkästchen aus.

Ebenso habe ich es leider nicht hinbekommen, dass die anderen Felder wieder deaktiviert werden, wenn das Kontrollkästchen wieder ausgeklickt wird. Hier habe ich versucht statt "0,true" ein "0,false" einzufügen, ebenso "1,false" nach "else"…eventuell habe ich hier noch nicht die richtige Quelle gefunden um nachzulesen? Beim Formular zurücksetzen klappt das dann allerdings super, das beim "readonly" nicht geklappt hat.

http://we.tl/JWIdensGFl
PDF Upload über wetransfer.com

PS. das mit dem simplen Einzeiler hab ich noch nicht so ganz raus… aber bin erst am Anfang mit dem "Try and Error"-Prinzip :) Vielen Dank hierfür für die Hilfe beim Lernen. Btw. hast du da eine


als Antwort auf: [#539185]

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

MurphysLaw
Beiträge gesamt: 588

28. Apr 2015, 12:29
Beitrag # 6 von 17
Beitrag ID: #539216
Bewertung:
(15523 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also eine Art "Toggle alle" Checkbox?
Hatte ja deine PDF noch. War kniffliger als gedacht, habe es letztendlich etwas krude gelöst, aber funktioniert:
Code
var felder=new Array("B","C","D","E","F","H"); 
if(event.target.value == "Off"){
for(i=0;i<6;i++){
var feld="GRUPPE.Feld" + felder[i];
this.getField(feld).checkThisBox(0, false);
}
}
else{
for(i=0;i<6;i++){
var feld="GRUPPE.Feld" + felder[i];
this.getField(feld).checkThisBox(0, true);
}
}
this.getField("GRUPPE").readonly = (event.target.value == "Off");


:-)


als Antwort auf: [#539214]

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

MurphysLaw
Beiträge gesamt: 588

28. Apr 2015, 13:22
Beitrag # 7 von 17
Beitrag ID: #539218
Bewertung:
(15498 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Oh sh... Habe das "G" im Array vergessen! o_O

Code
var felder=new Array("B","C","D","E","F","G","H");  
if(event.target.value == "Off"){
for(i=0;i<7;i++){
var feld="GRUPPE.Feld" + felder[i];
this.getField(feld).checkThisBox(0, false);
}
}
else{
for(i=0;i<7;i++){
var feld="GRUPPE.Feld" + felder[i];
this.getField(feld).checkThisBox(0, true);
}
}
this.getField("GRUPPE").readonly = (event.target.value == "Off");



als Antwort auf: [#539216]

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

sacrifice_87
Beiträge gesamt: 7

28. Apr 2015, 13:38
Beitrag # 8 von 17
Beitrag ID: #539220
Bewertung:
(15496 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Super vielen lieben Dank!
Jetzt weiss ich, wann ich Variablen verwenden kann :)

Einzig der Debugger zeigt mir jetzt noch eine Fehlermeldung an:
TypeError: this.getField(feld) is null
11:Field:Mouse Up

Da der Code aber funktioniert, kann man das einfach ignorieren?


als Antwort auf: [#539216]

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

MurphysLaw
Beiträge gesamt: 588

28. Apr 2015, 14:02
Beitrag # 9 von 17
Beitrag ID: #539222
Bewertung: |||
(15468 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Könntest Du ignorieren. Keine Ahnung warum da ein Fehler kommt, sollte eigentlich passen.
Wenn's dich nervt, sollte das hier den Fehler beseitigen:
Code
var felder=new Array("B","C","D","E","F","G","H");   
if(event.target.value == "Off"){
for(i=0;i<7;i++){
try{
var feld="GRUPPE.Feld" + felder[i];
this.getField(feld).checkThisBox(0, false);
}
catch(e){
}
}
}
else{
for(i=0;i<7;i++){
try{
var feld="GRUPPE.Feld" + felder[i];
this.getField(feld).checkThisBox(0, true);
}
catch(e){
}
}
}
this.getField("GRUPPE").readonly = (event.target.value == "Off");



als Antwort auf: [#539220]

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

sacrifice_87
Beiträge gesamt: 7

28. Apr 2015, 14:12
Beitrag # 10 von 17
Beitrag ID: #539223
Bewertung:
(15461 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen lieben Dank für deine Mühen und die tollen Antworten. Hast mir sehr geholfen :)


als Antwort auf: [#539222]

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

kay84
Beiträge gesamt: 4

2. Sep 2019, 10:06
Beitrag # 11 von 17
Beitrag ID: #571708
Bewertung:
(10637 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, ich habe ein ähnliches Problem. Leider habe ich gar keine Ahnung von Java oder von der herangehensweise...

Und zwar habe ich eine PDF mit 16 Check Boxen, wobei diese in 5 verschiedene Gruppen unterteilt sind, welche unabhänig von einander sind.

Für jede Gruppe würde ich gern sobald eine Checkbox ausgewählt wurde die anderen deaktivieren, bzw. falls wieder eine andere angewählt wird die anderen deaktivieren usw.

Meine Gruppe 1 besteht aus den den folgenden Checkboxen:

ChkBox
ChKBox2
ChKBox5
ChKBox7

Die Gruppe 2 besteht aus den folgenden Checkboxen:

ChKBox0
ChKBox1
ChKBox3
ChKBox4
ChKBox6
ChKBox8

Die Gruppe 3 besteht aus folgenden Checkboxen:

ChKBox9
ChKBox10

Die Gruppe 4 besteht aus folgenden Checkboxen:

ChKBox11
ChKBox12

Die Gruppe 5 besteht aus folgenden Checkboxen:

ChKBox13
ChKBox14

Kann mir vielleicht jemand mit meinem Problem weiterhelfen ?

Grüße Kay


als Antwort auf: [#539223]
(Dieser Beitrag wurde von kay84 am 2. Sep 2019, 10:12 geändert)

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

taunus11
Beiträge gesamt: 609

2. Sep 2019, 10:44
Beitrag # 12 von 17
Beitrag ID: #571711
Bewertung:
(10623 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Man kann dafür einfach Gruppen von Optionsfeldern verwenden.


als Antwort auf: [#571708]

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

kay84
Beiträge gesamt: 4

2. Sep 2019, 10:54
Beitrag # 13 von 17
Beitrag ID: #571712
Bewertung:
(10619 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich glaube, dass ich mich falsch ausgedrückt habe.

Also jede Gruppe soll unabhängig voneinander sein, also wenn ich bspw. in der Gruppe 1 die ChkBox 2 auswähle, sollen alle anderen Checkboxen der Gruppe 1 Gruppe deaktiviert werden.
Dies soll aber keine Auswirkungen auf die anderen Gruppen haben.


als Antwort auf: [#571711]
(Dieser Beitrag wurde von kay84 am 2. Sep 2019, 10:55 geändert)

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

taunus11
Beiträge gesamt: 609

2. Sep 2019, 11:22
Beitrag # 14 von 17
Beitrag ID: #571713
Bewertung:
(10610 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Für jede Gruppe eine eigene Gruppe von Optionsfeldern verwenden.


als Antwort auf: [#571712]

Acrobat X Javascript: Per Kontrollkästchen eine Gruppe deaktivieren

kay84
Beiträge gesamt: 4

2. Sep 2019, 11:45
Beitrag # 15 von 17
Beitrag ID: #571714
Bewertung:
(10600 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe leider überhaupt keine Ahnung, wie ich das ganze angehen soll.


als Antwort auf: [#571713]
X