2016-07-15 150 views
-2

我正在使用JS來計算窗體上的一些輸入。我使用幾個基於登錄用戶類型的IF語句以及他們輸入到字段中的值。使用IF如果IF語句

總之,式結構如下:

IF登錄的用戶是管理員或貢獻者,運行式1 否則,如果用戶是訂戶運行式2.

謹現在添加第三條規則,例如,如果登錄的用戶是'客戶',則運行速率3.

我面臨的挑戰是知道哪個IF語句適應新的變體以及它應該放在哪裏,I假設,在第一個公式之後?

這是我到目前爲止有:

(function(){ 
if(fieldname152=='administrator','contributor') return IF((fieldname130<=1000),(fieldname130)*50.40/1000,IF(fieldname130<=10000,(fieldname130)*50.40/1000,IF(fieldname130<=50000,(fieldname130)*50.90/1000,IF(fieldname130<=500000,(fieldname130)*50.45/1000)))); 
else if(fieldname152=='subscriber') return IF((fieldname130<=1000),(fieldname130)*49.40/1000,IF(fieldname130<=10000,(fieldname130)*49.40/1000,IF(fieldname130<=50000,(fieldname130)*48.90/1000,IF(fieldname130<=500000,(fieldname130)*48.45/1000)))); 
})() 

任何幫助將不勝感激。

小號

+1

這不是很可讀,可你neaten了代碼有點? –

+0

對不起,我anwered自己,它需要如下的問題: (函數(){ 如果(IN(fieldname152,[ '管理員', '貢獻者'])){ /**的對於管理員和貢獻者**代碼/ } 如果(fieldname152 == 'role_a') { /**爲role_a代碼**/ } 如果(fieldname152 == 'role_b') {** role_b **/ }的代碼} })() –

+0

本文可能會幫助您理解'if ... else'更好:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else – edmundo

回答

1

你會好得多拆分此代碼,如下所示

function calculateValue(userType, value) 
{ 
    var multiplier = 0; 
    switch(userType) 
    { 
    case "administrator": 
    case "contributor": 
     if (value > 5000000) 
     { 
     multiplier = 50.45; 
     } else if (value > 50000) 
     { 
     multiplier = 50.9 
     } else if (value > 1000) 
     { 
     multiplier = 50.4 
     } 
     break; 
    case "user": 
     // Put your value calculations here 
     break; 
    default: 
     // This is for users other than admin, contrib or user 
     if (value > 5000000) 
     { 
     multiplier = 48.45; 
     } else if (value > 50000) 
     { 
     multiplier = 48.9; 
     } else if (value > 1000) 
     { 
     multiplier = 49.4; 
     } 
    } // end case 
    return value * (multiplier/1000); 

} 

然後就可以調用它,如下所示:

var fieldname152 = 'administrator'; 
var fieldname130 = 500; 

var result = calculateValue(fieldname152, fieldname130);