2016-11-20 69 views
0

我有一種情況,我很困惑如何使用if else語句。這與驗證有關。運營商驗證2個選項

我的下面的代碼適用於第2個字段。

if(!name || name=='' && 
     !age || age=='' 
    ){ 
     console.log('failed to validate'); 
     return false; 
    } 

我的第三個領域是棘手的。他們是skippedpassed。該字段將顯示爲skippedpassed。我如何確保他們得到驗證?我不能做!skipped || skipped == '' && !passed || passed == ''這肯定會失敗。

+0

瞭解'&&'比'||'更緊密,因此您可能需要引入明確的括號以強制執行正確的評估順序。 – Pointy

+0

請詳細說明。 –

+0

在您的驗證中,包括導致顯示各個字段的條件 –

回答

0

你可以嘗試這樣的事情:決定何時

if(!name || name=='' 
    && !age || age=='' 
    && ((!skipped || skipped == '') 
     || (!passed || passed == '')) 
){ 
    console.log('failed to validate'); 
    return false; 
} 
0

使用功能是否可以顯示相應的輸入字段和驗證時:

function isPassedNeeded(){ 
    return someBool; 
} 
function isSkippedNeeded(){ 
    return someOtherBool; 
} 

驗證可能看起來像

if(isPassedNeeded() && (!passed || passed == ''){ 
    // fail 
} 
// same for the other field... 

但是,這種方式是非常動態的。您可以考慮一些動態屬性(例如,使用inputclass)或在驗證它們之前檢查字段的可見性。