2016-04-30 20 views
0

JavaScriptでフォームをデザインし、ユーザー入力をJavaScriptで検証していますが、計画どおりに動作していないようです。下記の私のサンプルコードをご覧ください。Adob​​e PDFフォーム用JavaScript:条件に応じたラベルの表示と非表示

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; 
} 

あなたがコード上から見ることができるように、特定のラベルには、複数のドロップダウンリストから、ユーザの選択に応じて、隠されたと見えるようになります。

私の第一の問題は、ユーザーが例えば"four"選択した場合、||のみ最初の条件は、すなわち"two"動作し、他のすべてが無視され、複数のを持っているコードselection1 ==の一部には、何も起こりません。

私の2番目の問題は、ユーザーが次の組み合わせを選択したときselection1 = "Please select" & selection2 = "oranges"何らかの理由でLabel1と表示されます。

私の第三の問題、例えば、ユーザは、ユーザが変更した場合Label1が正しく、しかし、選択にはLabel1はまだ表示されているとLabel2 & Label3はまだ隠されているいくつかの理由で、selection1 = "two"、言うことができます表示さselection2 = "oranges" & selection1 = "three"を選択した場合。

上記のコードは、隠しテキストボックスの計算(Printscreen 1)セクションに貼り付けられていますが、ドロップダウンリスト(Printscreen 2)自体の検証セクションに貼り付けてみましたが、何も動作していないようです。私もスイッチ文を使用しようとしましたが、私のselection1には複数の条件があるため、動作していないようです。私のselection1は40 ||の領域にあり、全体的に私は25-30の異なるシナリオの領域にあります。

お手数をおかけしますようお願い申し上げます。

PrintScreenを1

enter image description here

PrintScreenを2

enter image description here

答えて

1

それは構文エラーです...そのまま(アクロバット)JavaScriptでは、それはグループの様々なオプションすることはできませんここで(論理OR演算子(||)を使用して)

あなたが、私はそれがここだけでサンプルテキストだと思いますが、あなたはカラーコードを見れば、引用符で何か問題があるよう

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

のように、フレーズアウトすべての意思決定をする必要があると思います。実際、"Eightの後の引用符は中括弧引用符です。 JavaScriptは直線引用符を使用します。ここで編集ウィンドウにコードをコピーするだけであれば、それがこれらの問題の原因になります。

さらに、私はこのような状況(他の選択に基づいてフィールドを表示/非表示)があると、通常はすべてを隠してから適切に表示します。これは、階層フィールド名("Label.1","Label.2","Label.3"など)を使用すると最も簡単に実行できます。私は、視認性の既知の状態を作成するためにしなければならないすべてのコード行を追加します。この場合には、:

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

そして今、私はフィールドの表示を開始することができます。

+0

こんにちはマックス、私のためにこの問題を解決していただきありがとうございます、おそらく私の他の問題を解決することができるだろう、私はここに別の質問を掲載しました:[リンク](http://stackoverflow.com/questions/37634581/adobe- pdf-javascript-for-forms-grouping-conditions-from-if-else-statement) – o0Lucky0o

関連する問題