2016-05-05 1 views
0

私は、テキストフィールドに、カウンタを使用して入力したテキストフィールドの量を指定しようとしています。たとえば、10個のフィールドのうち3個が0より大きい場合は、イベント値を3にします。コードを適用すると、何かが行われます。助言がありますか。PDF Javascript counter

var cnt = 0; 
var v1 = getField("A").value!="" ? getField("A").value : 0; 
var v2 = getField("B").value!="" ? getField("B").value : 0; 
var v3 = getField("C").value!="" ? getField("C").value : 0; 
var v4 = getField("D").value!="" ? getField("D").value : 0; 
var v5 = getField("E").value!="" ? getField("E").value : 0; 
var v6 = getField("F").value!="" ? getField("F").value : 0; 
var v7 = getField("G").value!="" ? getField("G").value : 0; 
var v8 = getField("H").value!="" ? getField("H").value : 0; 
var v9 = getField("I").value!="" ? getField("I").value : 0; 
var v10 = getField("J").value!="" ? getField("J").value : 0; 


if (this.getField("v1").value > 0){ 
cnt++; 
} 
if (this.getField("v2").value > 0){ 
cnt++; 
} 
if (this.getField("v3").value > 0){ 
cnt++; 
} 
if (this.getField("v4").value > 0){ 
cnt++; 
} 
if (this.getField("v5").value > 0){ 
cnt++; 
} 
if (this.getField("v7").value > 0){ 
cnt++; 
} 
if (this.getField("v8").value > 0){ 
cnt++; 
} 
if (this.getField("v9").value > 0){ 
cnt++; 
} 
if (this.getField("v10").value > 0){ 
cnt++; 
} 


event.value = cnt; 
+1

最後に 'event.value'とは何ですか? –

+0

偶数の値は、 "cnt" – dave82

答えて

0

イケネス...(申し訳ありませんが、それは残念ですが)全体が単純化される可能性があります。この行で何かを試してみてください(と満たされたフィールドの数を示すフィールドの計算イベントにこのスクリプトを追加):

var cntr = 0 ; 
var myFields = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"] 
for (var i = 0 ; i < myFields.length ; i++) { 
if (this.getField(myFields[i]).value != this.getField(myFields[i]).defaultValue) { 
cntr++ ; 
} 
event.value = cntr ; 

そして、それはそれを行う必要があります。フィールド名に応じてmyFields配列を調整する必要があります。

最初のブロックで変数v1を定義すると(たとえば)、フィールド値または0が割り当てられるため、元のコードは機能しません。2番目のブロックでは、 "v1"を計算し、それが0より大きいかどうかを評価する。

第1ブロックと第2ブロックの間に接続がない。