2016-04-30 11 views
0

Ich entwerfe Formulare in PDF und validiere Benutzereingaben mit JavaScript, aber es scheint nicht wie geplant zu funktionieren. Bitte beachten Sie meinen Beispielcode unten.Adobe PDF JavaScript für Formulare: Anzeigen und Ausblenden von Beschriftungen abhängig von den Bedingungen

var selection1 = this.getField("textfield1").value; 
var selection2= this.getField("textfield2").value; 

if (selection1 == "Please select" && selection2 == "Please select") 
{ 
    getField("Label1").display=display.hidden; 
    getField("Label2").display=display.hidden; 
    getField("Label3").display=display.hidden; 
} 
else if (selection1 == "Please select" && selection2 == "oranges") 
{ 
    getField("Label1").display=display.hidden; 
    getField("Label2").display=display.hidden; 
    getField("Label3").display=display.hidden; 
} 
else if ((selection2 == "oranges") && (selection1 == "two" || "four" || "six" || "eight”)) 
{ 
    getField("Label1").display=display.hidden; 
    getField("Label2").display=display.visible; 
    getField("Label3").display=display.visible; 
} 
else if ((selection2 == "oranges") && (selection1 == "three" || "five" || "seven" || "nine")) 
{ 
    getField("Label1").display=display.visible;  
    getField("Label2").display=display.hidden; 
    getField("Label3").display=display.hidden; 
} 

Wie Sie von oben Code sehen können, werden bestimmte Etiketten versteckt und sichtbar je nach Benutzerauswahl von den mehreren Dropdown-Listen.

Meine erste Ausgabe, in der ein Teil des Codes selection1 ==, die mehrere hat || nur erste Bedingung arbeitet das heißt "two" und alles andere wird ignoriert, wenn Benutzer "four" zum Beispiel wählt, passiert nichts.

Mein zweites Problem, wenn Benutzer die folgende Kombination selection1 = "Please select" & selection2 = "oranges" auswählt zeigt es aus irgendeinem Grund Label1 an.

Meine 3. Ausgabe, wenn zum Beispiel Benutzer ausgewählt selection2 = "oranges" & selection1 = "three" es zeigt Label1 richtig, aber wenn Benutzer der Auswahl ändern zu können sagen, selection1 = "two" aus irgendeinem Grunde Label1 ist noch sichtbar und Label2 & Label3 sind noch verborgen.

Der obige Code wurde in den Calculation (Printscreen 1) Abschnitt des ausgeblendeten Textfelds eingefügt, ich habe auch versucht, es in den Validierungsbereich der Dropdown-Liste (Printscreen 2) selbst einzufügen, aber nichts scheint zu funktionieren . Ich habe auch versucht, Switch Statement zu verwenden, aber weil mein selection1 mehrere Bedingungen hat, scheint es auch nicht zu funktionieren. Bitte beachten Sie auch meine selection1 hat in der Region von 40 || Bedingungen, und insgesamt habe ich in der Region von 25-30 verschiedenen Szenarien.

Ihre Hilfe würde sehr geschätzt werden, danke im Voraus.

Printscreen 1

enter image description here

Print Screen 2

enter image description here

Antwort

1

Es ist ein Syntaxfehler ... In (Acrobat) JavaScript ist es nicht möglich ist, verschiedene Optionen zu gruppieren, wie es ist hier (mit dem logischen ODER-Operator (||)).

Sie haben würden Begriff aus jeder Entscheidung, wie in

… selection1 == "Two" || selection1 == "Four" || selection1 == "Six" || … 

Ich denke, es hier nur der Beispieltext ist, aber wenn man sich die Farbcodierung aussehen, es ist etwas falsch mit den Anführungszeichen . In der Tat ist das Zitat nach "Eight ein geschweiften Zitat; JavaScript verwendet gerade Anführungszeichen. Wenn Sie den Code einfach in das Editierfenster kopiert haben, wäre das der Grund für diese Probleme.

Darüber hinaus, wenn ich eine solche Situation (Anzeigen/Verstecken von Feldern basierend auf anderen Auswahlen) habe, verberge ich normalerweise alle zuerst und dann entsprechend anzeigen. Dies wird am einfachsten erreicht, indem hierarchische Feldnamen verwendet werden (z. B. "Label.1", "Label.2", "Label.3").In diesem Fall alles, was ich einen bekannten Zustand der Sichtbarkeit zu tun haben, zu erstellen, ist diese Codezeile hinzu:

this.getField("Label").display = display.hidden ; 

und jetzt kann ich zeigen Felder beginnen.

+0

Hallo Max, danke für die Lösung dieses Problems für mich, wäre vielleicht in der Lage, mein anderes Problem zu lösen, ich habe hier eine andere Frage gestellt: [link] (http://stackoverflow.com/questions/37634581/adobe- pdf-javascript-for-forms-Gruppierungsbedingungen-from-if-else-statement – o0Lucky0o