2016-04-22 71 views
0

我試圖獲得兩個表單字段的產品。Muiltplie兩個字段,一個用百分比符號

場A *字段B = C區域

例如:(5.7%)* 14835 = 846

但是當我運行它回來 「南」 的代碼。

我確定字段C正在嘗試乘以%符號。如何讓字段C在執行計算時忽略%符號?

字段自定義計算腳本 - 這個舍入到最近的十分之一,並增加了一個「%」符號

if (!event.value) event.value = ""; 

else 
event.value = util.printf("%.1f%", event.value); 

字段B定製計算腳本 - 這個舍入爲最接近的整數

if (!event.value) event.value = ""; 

else 
event.value = util.printf("%.0f", event.value); 

領域c自定義計算腳本 - 將字段A和B相乘,舍入爲最接近的整數,並在將字段A轉換爲小數百分比前將其轉換爲百分比小數

var v1 = getField("FieldA").value!="" ? getField("FieldA").value : 0; 
var v2 = getField("FieldB").value!="" ? getField("FieldB").value : 0; 

event.value = Math.round(((v1/100)*v2) !==0)?Math.round((v1/100)*v2):""; 
+0

因爲字符串「5.7%」是NaN(不是數字) – Kenji

回答

0

看起來您可以將%符號從該輸入值中正確計算出來。這可以通過替換來完成,如下所示:

var v1 = getField("FieldA").value!="" ? getField("FieldA").value.replace(/%/, '') : 0; 
+0

這很有效,答案很好,但當我點擊文本並轉到另一個字段時,字段A變爲「1. $%」, C字段保持不變,C字段變爲「NaN」。任何想法爲什麼? – dave82

0

將字段A格式化爲百分比。

該字段的值必須是實際因子(例如85%爲0.85)。

如果你想在用戶輸入百分比數字,添加下面的腳本來onFocus事件:

event.value = event.target.value * 100 ; 

,並在Validate事件:

event.value = event.value/100 ; 

而且應該這樣做。

注:我現在沒有驗證。

+0

這很好用,但我希望這個字段在輸入內容之前是空白的,如果沒有值的話,它會變成空白。目前它顯示0.0%。我添加到該字段的驗證: if(!event.value)event.value =「」; else event.value = event.value/100; – dave82