Sturmflut92
Lt. Commander
- Registriert
- Apr. 2011
- Beiträge
- 2.042
Hallo,
ich brauche dringend Hilfe. Ich bin blutiger Anfänger was JavaScript angeht und muss gerade eine PDF "programmieren" und komme nicht weiter. Ich mache das ganze mit Adobe Actobat Pro DC. Ich versuche euch alles was ich gemacht habe und was ich erzielen möchte darzustellen.
Es geht um ein Formular, bei dem Inhalte abhängig davon angezeigt werden, welche von zwei Checkboxen angeklickt werden. So sieht das Formular aus sofern keine Checkbox ausgewählt wurde:
Bild 1
Im nächsten Bild kann man alle relevanten Felder sehen.
Die zwei Checkboxes VJ und Schnittvertiefung, haben den selben Feldnamen haben aber verschiedene Exportwerte, damit nur eine von beiden checked sein kann (ich hatte Radio-Buttons aber damit hat mein JavaScript nicht funktioniert, was ich im Folgenden noch aufführe).
Die Felder auf der Tabelle sind Schaltflächen, die vom Layout her "nur Symbol" sind, also keine Schaltflächenfunktion haben. Aber das war die einzige Möglichkeit um ein Bild als Formularfeld einzufügen.
Bild 2
Die Verteilung der Schaltflächen-Felder auf die jeweiligen Checkboxes sind wie folgt:
Bild 3
So muss es für "VJ" aussehen:
Bild 4
So muss es für "Schnittvertiefung" aussehen:
Bild 5
Mit folgendem JavaScript Aktionen der Checkboxen habe dieses Ziel fast erreicht:
Der Checkbox VJ "Check#1" eine Aktion hinzugefügt - bei "Maustaste loslassen" ein "JavaScript ausführen":
var fieldHide = event.target.isBoxChecked (0) ?display.visible:display.hidden;
this.getField("1VJ").display = fieldHide;
this.getField("2VJ").display = fieldHide;
this.getField("3VJ").display = fieldHide;
this.getField("4VJ").display = fieldHide;
this.getField("5VJ").display = fieldHide;
this.getField("6VJ").display = fieldHide;
Der Checkbox Schnittvertiefung "Check#2" eine Aktion hinzugefügt - bei "Maustaste loslassen" ein "JavaScript ausführen":
var fieldHide = event.target.isBoxChecked (1) ?display.visible:display.hidden;
this.getField("1VJ").display = fieldHide;
this.getField("2VT").display = fieldHide;
this.getField("3VJ").display = fieldHide;
this.getField("4VJ").display = fieldHide;
this.getField("5VJ").display = fieldHide;
this.getField("6VJ").display = fieldHide;
this.getField("7VT").display = fieldHide;
this.getField("8VT").display = fieldHide;
Das Problem ist jetzt allerdings, dass das Ganze nur funktioniert sofern man ein Häkchen setzt und dann wieder extra entfernt bevor man den anderen Kasten anhakt.
Ist eine Checkbox abgehakt und wird direkt die andere angeklickt, entfernt sich (wechselt) zwar das Häkchen den Kasten, aber die Felder werden nicht wieder verborgen und so überlappen sich dann die Inhalte.
Die Felder von nicht extra wieder enthakten Checkboxen bleiben stehen.
Hakt man etwa "VJ" an und wechselt dann auf "Schnittvertiefung", dann überlappen sich alle Felder:
Bild 6
Wechselt man jetzt wieder auf "VJ" hat man weiterhin alle Felder überlappend. Enthakt man nun das "VJ" bleiben nun noch die drei Felder der Schnittvertiefung (this.getField("2VT").display = fieldHide; this.getField("7VT").display = fieldHide; this.getField("8VT").display = fieldHide; ) stehen, die nicht in den Befehlen von der Checkbox VJ (s.o.) hinterlegt sind:
Bild 7
Um wieder auf eine Blankotabelle zu kommen muss man hier also nochmal den Haken bei "Schnittvertiefung" setzen und entfernen.
Was kann ich tun? Wie muss ich die Befehle anpassen? Ich hab schon so viel ausprobiert und habe viel zu wenig Kenntnisse, um eine Lösung zu finden.
Ich brauche einen Befehl der bewirkt, dass wenn bereits ein Haken gesetzt ist und dann direkt ein anderer Haken gesetzt wird, die Checkbox deaktiviert wird und die Felder wieder verborgen werden ?!?
Ich hab jetzt ewig an diesem Eintrag geschrieben und kann grad nicht nochmal überarbeiten. Ich hoffe er ist einigermaßen verständlich. Wenn nicht, dann schreibt mir bitte wo ich verkackt hab und was unklar ist, damit ich das nochmal Umformulieren/Erklären kann.
Ganz liebe Grüße!
ich brauche dringend Hilfe. Ich bin blutiger Anfänger was JavaScript angeht und muss gerade eine PDF "programmieren" und komme nicht weiter. Ich mache das ganze mit Adobe Actobat Pro DC. Ich versuche euch alles was ich gemacht habe und was ich erzielen möchte darzustellen.
Es geht um ein Formular, bei dem Inhalte abhängig davon angezeigt werden, welche von zwei Checkboxen angeklickt werden. So sieht das Formular aus sofern keine Checkbox ausgewählt wurde:
Bild 1
Im nächsten Bild kann man alle relevanten Felder sehen.
Die zwei Checkboxes VJ und Schnittvertiefung, haben den selben Feldnamen haben aber verschiedene Exportwerte, damit nur eine von beiden checked sein kann (ich hatte Radio-Buttons aber damit hat mein JavaScript nicht funktioniert, was ich im Folgenden noch aufführe).
Die Felder auf der Tabelle sind Schaltflächen, die vom Layout her "nur Symbol" sind, also keine Schaltflächenfunktion haben. Aber das war die einzige Möglichkeit um ein Bild als Formularfeld einzufügen.
Bild 2
Die Verteilung der Schaltflächen-Felder auf die jeweiligen Checkboxes sind wie folgt:
So muss es für "VJ" aussehen:
Bild 4
So muss es für "Schnittvertiefung" aussehen:
Bild 5
Mit folgendem JavaScript Aktionen der Checkboxen habe dieses Ziel fast erreicht:
Der Checkbox VJ "Check#1" eine Aktion hinzugefügt - bei "Maustaste loslassen" ein "JavaScript ausführen":
var fieldHide = event.target.isBoxChecked (0) ?display.visible:display.hidden;
this.getField("1VJ").display = fieldHide;
this.getField("2VJ").display = fieldHide;
this.getField("3VJ").display = fieldHide;
this.getField("4VJ").display = fieldHide;
this.getField("5VJ").display = fieldHide;
this.getField("6VJ").display = fieldHide;
Der Checkbox Schnittvertiefung "Check#2" eine Aktion hinzugefügt - bei "Maustaste loslassen" ein "JavaScript ausführen":
var fieldHide = event.target.isBoxChecked (1) ?display.visible:display.hidden;
this.getField("1VJ").display = fieldHide;
this.getField("2VT").display = fieldHide;
this.getField("3VJ").display = fieldHide;
this.getField("4VJ").display = fieldHide;
this.getField("5VJ").display = fieldHide;
this.getField("6VJ").display = fieldHide;
this.getField("7VT").display = fieldHide;
this.getField("8VT").display = fieldHide;
Das Problem ist jetzt allerdings, dass das Ganze nur funktioniert sofern man ein Häkchen setzt und dann wieder extra entfernt bevor man den anderen Kasten anhakt.
Ist eine Checkbox abgehakt und wird direkt die andere angeklickt, entfernt sich (wechselt) zwar das Häkchen den Kasten, aber die Felder werden nicht wieder verborgen und so überlappen sich dann die Inhalte.
Die Felder von nicht extra wieder enthakten Checkboxen bleiben stehen.
Hakt man etwa "VJ" an und wechselt dann auf "Schnittvertiefung", dann überlappen sich alle Felder:
Bild 6
Wechselt man jetzt wieder auf "VJ" hat man weiterhin alle Felder überlappend. Enthakt man nun das "VJ" bleiben nun noch die drei Felder der Schnittvertiefung (this.getField("2VT").display = fieldHide; this.getField("7VT").display = fieldHide; this.getField("8VT").display = fieldHide; ) stehen, die nicht in den Befehlen von der Checkbox VJ (s.o.) hinterlegt sind:
Bild 7
Um wieder auf eine Blankotabelle zu kommen muss man hier also nochmal den Haken bei "Schnittvertiefung" setzen und entfernen.
Was kann ich tun? Wie muss ich die Befehle anpassen? Ich hab schon so viel ausprobiert und habe viel zu wenig Kenntnisse, um eine Lösung zu finden.
Ich brauche einen Befehl der bewirkt, dass wenn bereits ein Haken gesetzt ist und dann direkt ein anderer Haken gesetzt wird, die Checkbox deaktiviert wird und die Felder wieder verborgen werden ?!?
Ich hab jetzt ewig an diesem Eintrag geschrieben und kann grad nicht nochmal überarbeiten. Ich hoffe er ist einigermaßen verständlich. Wenn nicht, dann schreibt mir bitte wo ich verkackt hab und was unklar ist, damit ich das nochmal Umformulieren/Erklären kann.
Ganz liebe Grüße!
Anhänge
Zuletzt bearbeitet: