2016-03-30 2 views
0

ちょうどPDFフォーム(foxitファントムを使用)で遊んだり、必要なもの(本当にシンプルなフォーム)のためにJavascriptで計算するための基本をいくつか調べることができました。 しかし、この問題を解決する方法や答えを正しく検索する方法がわからないので、どんなヘルプや指示も歓迎されます。 私は、フィールド上の「計算」として、このような何かをしようとしている:強制的に条件付きテキストを追加する方法は? [101、pdf form]

var x=this.getField ("TextField1"); 

var y=this.getField ("NumberField1"); 

var z=this.getField ("NumberField2"); 

if (x.value = "A") {z.value=(50+y.value);} 

else if (x.value = "B","C") {z.value=(100+y.value);} 

else if (x.value = "D") {z.value=(200+y.value);} 

else {z.value="Type an appropriate letter on TextField1"} 

を私はそれを入力すると、それは「A」で満たされるようにテキストフィールド1を強制的に(あるいは私が第一の条件に書くものは何でも(A、50 + yの場合)数値の合計が正しく加算されますが、TextField1に他の文字を入力しようとすると、そのフィールドの唯一のものになるように「A」が消去されて戻ります。 最初の条件でAからBに切り替えた後は、テキストフィールド1で強制的に "B"に変更されますが、数値合計はに調整されませんが、これはコードが残っていないためC++ ...

考え方は、ユーザーがTextField1に入力した内容に応じてNumberField2に追加することですが、そのコードによってテキストが強制的に入力されます。

これはおそらく絶対に些細なことですが、このサイトがこのような媒体の媒体ではない場合は申し訳ありませんが、Googleで何を検索するのか分かりませんでした。

答えて

1

Javascriptでは、比較のために==を使用する必要がありますが、singe =は割り当てです。 だから何をやっていることは、常に ""

をしようとするTextField1.valueを設定することです(x.value == "A"){z.value =(50 + y.value);}もし

(他の条件についても同様)

var x=this.getField ("TextField1"); 
var y=this.getField ("NumberField1"); 
var z=this.getField ("NumberField2"); 

if (x.value == "A") {z.value=(50+y.value);} 
else if ((x.value == "B") || (x.value == "C")) {z.value=(100+y.value);} 
else if (x.value == "D") {z.value=(200+y.value);} 
else {z.value="Type an appropriate letter on TextField1"} 
+0

私はそうだと思います。それはもはやテキストを強制するわけではありませんが、タイプされているものであっても、私がテキストフィールドに入力したものは無視し、NumberField2は常に50 + yを返します。あなたはどこにコードが間違っているか分かりますか?ありがとう! – Agherian

+0

第2の場合else値がBまたはCの場合はトリガーする必要がありますか? 私は自分の答えでコードを調整しました。 – mikesp

+0

解決策は本当にうまくいきますし、それに対して何もありません。私は何らかの個人的な好みだと思っています...なぜスイッチを使用していないのですか? –