Change-Event simulieren

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
cd99
Beiträge: 32
Registriert: 09.12.2010, 16:36

Change-Event simulieren

Beitrag von cd99 » 09.02.2011, 08:38

Hallo zusammen,
ich habe folgende Beispielkonfiguration:

Ich habe (einander ausschließende) Checkboxen "A" und "B".
Zudem eine Checkbox "Ja" und ein Summenfeld.

Ist "Ja" aktiviert, dann ergibt sich je nach Auswahl von "A" oder "B" eine Summe.

Aus derzeit nicht vermeidbaren Gründen wird die Berechnung der Summe in dem Change-Event von "Ja" angestoßen.
(Grundsätzlich hätte man das ja anders machen können)
Nun möchte ich bei einem Wechsel von "A" zu "B" die Berechnung neu durchführen, also eigentlich das Change-Event von "Ja" (aus einer Funktion in einem Skript-Objekt) anstossen.

Wie ist das möglich?
Das Change-Event wird ja nur durch Interaktivität des Users ausgelöst.
Kann ich das irgendwie simulieren?

Danke für jede Anregung!

vg cd99

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Change-Event simulieren

Beitrag von nele_sonntag » 09.02.2011, 10:36

Hallo cd99,
lade doch bitte mal Dein bis jetzt bestehendes PDF hoch. Das macht es leichter.
LG Mandy

cd99
Beiträge: 32
Registriert: 09.12.2010, 16:36

Change-Event simulieren

Beitrag von cd99 » 09.02.2011, 10:52

Hi Mandy,
kann ich leider nicht...
das Problem ist nur ein Teil des Ganzen Problems und das pdf beinhaltet sehr viel Details und Infos, die ich nicht online stellen kann.
Ich befürchte echt, dass ich das Ganze komplet neu machen muss...

Die Grundfrage ist aber eigentlich ganz einfach:
kann ich von Kontrollkästchen "A" das Change-Event von "B" antriggern?

Danke & Gruß cd99

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Change-Event simulieren

Beitrag von nele_sonntag » 09.02.2011, 10:55

Ich hatte gehofft, wenn ich Dein PDF sehe, eine andere Lösung zu finden, die Dein Problem behebt. Ich versuche mal was und melde mich.

Die Möglichkeit den sensitiven Kram einfach rauszulöschen, besteht nicht?

LG Mandy

KorvinOE
Beiträge: 38
Registriert: 24.03.2010, 12:50

Change-Event simulieren

Beitrag von KorvinOE » 11.02.2011, 16:16

Hallo cd99 und Mandy,

mein Forschlag wäre folgendes:

Skript-Objekt "mySkriptObjekt":

Code: Alles auswählen

function myChangeEvent() {
    ... // alles zum Berechnen der Summe
}
Checkbox "Ja" - ChangeEvent:

Code: Alles auswählen

mySkriptObjekt.myChangeEvent();
Checkbox "A" und "B" - ChangeEvent:

Code: Alles auswählen

if(this."wenn ausgewählt") {
    mySkriptObjekt.myChangeEvent();
}
Du hast geschrieben, dass es von "A" zu "B" gewechselt wird - das heißt zu dem Change-Zeitpunkt nur ein Checkbox ausgewählt wird und der Skript nur ein mal laufen wird.

Du kannst auch dein Formular in einer neuen Datei speichern, alle Daten löschen, die du online nicht darstellen möchtest, und uns zeigen. So könnten wir dir besser helfen ;)

VG Alex

cd99
Beiträge: 32
Registriert: 09.12.2010, 16:36

Change-Event simulieren

Beitrag von cd99 » 14.02.2011, 09:36

HI zusammen,
danke für den Input.
ich habe wirklich das gesamte Dokument in den letzten Tagen neu aufgesetzt, Altlasten über Bord geworfen und alles über das calculate-Event gemacht.
Das wird ja bei jedem Event-Aufruf nachgezogen und ist der saubere Weg.

@KorvinOE: das würde so funktionieren, aber auch da hätte ich sehr viel anpassen müssen.

Interessant wäre für mich immer noch, ob es geht, dass ich einfach sage:
"Du (Objekt XY) bist jetzt geändert, führe Dein Change-Event aus"
(Ich kann Checkboxen ja über den rawValue ändern, allerdings wird dabei halt kein Change-Event ausgeführt...)
Wenn ich ein bißchen Zeit habe zwischendurch, dann schmeisse ich mal alles an wichtigen daten raus und poste das Doc mal.
ist vielleciht auch ganz interessant.
danke, gruß c99

KorvinOE
Beiträge: 38
Registriert: 24.03.2010, 12:50

Change-Event simulieren

Beitrag von KorvinOE » 16.02.2011, 11:41

Hi,

habe gefunden:

Code: Alles auswählen

xfa.form.form1.Seite1.Button.execEvent("click");
Es gibt auch:

Code: Alles auswählen

execCalculate
execEvent
execInitialize
execute
execValidate
VG Alex

Antworten