2013-10-08 75 views
0

我無法獲得下面的IF語句正常工作。前兩個語句執行完美。但是,最後一條語句(帶有!=語句的語句)根本沒有被讀取。我不知道我哪裏錯了。否則/ IF聲明不能正常工作

function validatePrivate(v){ 
    if (cbSwitchStatus.getValue()!='P') { 
     if (v=='') return true; 
     else return 'This valid is not valid.'; 
    } 
    else { 
     if (storePrivate.findExact('disp',v) > -1) return true; 
     else return 'This value is not valid.'; 
    } 
    else{ 
     if(cbServCarrier.getValue() != cbPrivateCarrier.getValue()) return true; 
     else return 'This value is not valid.'; 
    } 

} 
+1

任何你能想象第二個'else'的情況還沒有用第一個'else'處理?沒有'如果其他' – devnull69

+0

爲什麼你不嘗試正確使用{}。我認爲這將解決問題。 – Bazinga777

+1

抓一本關於編程的書。從最基本的開始吧.. –

回答

2

簡而言之,你不能有多個其他人的,因爲最後否則根本不會進行評估......

function validatePrivate(v){ 
    if (cbSwitchStatus.getValue()!='P') { 
     if (v=='') return true; 
     return 'This valid is not valid.'; 
    } 
    else if (storePrivate.findExact('disp',v) > -1) { 
     return 'This value is not valid.'; 
    } 
    else if(cbServCarrier.getValue() != cbPrivateCarrier.getValue()) { 
     return 'This value is not valid.'; 
    } 

} 
0

有問題的最終「其他」模塊具有將達它沒有執行路徑。

您需要澄清哪些情況是由最終的'else'條件封裝的,然後相應地重新包裝括號以確保它們反映您的意圖。

0

你不能有多個else塊(因爲無論是第一,如果還是第一個else塊將始終執行),將它們組合成一個或窩他們是這樣的:

function validatePrivate(v){ 
    if (cbSwitchStatus.getValue()!='P') { 
     if (v=='') return true; 
     else return 'This valid is not valid.'; 
    } 
    else if (storePrivate.findExact('disp',v) > -1){ 
     return true; 
    } 
    else if(cbServCarrier.getValue() != cbPrivateCarrier.getValue()) { 
     return true; 
    } 
    else { 
     return 'This value is not valid.' 
    }; 
} 
+0

非常感謝! –

1
if (
    cbSwitchStatus.getValue()!='P' && v=='' || 
    storePrivate.findExact('disp',v) > -1 || 
    cbServCarrier.getValue() != cbPrivateCarrier.getValue() 
) { 
    return true; 
} else { 
    return 'This valid is not valid.'; 
}