ELSE / IF语句无法正常工作

时间:2013-10-08 19:23:15

标签: javascript validation extjs if-statement playframework

我无法使下面的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.';
    }

}

4 个答案:

答案 0 :(得分: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.';
    }

}

答案 1 :(得分:1)

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

答案 2 :(得分:0)

有问题的最终'else'块没有到达它的执行路径。

您需要澄清最终“其他”条件所包含的情况,然后相应地修改您的封闭式括号以确保它们反映您的意图。

答案 3 :(得分:0)

你不能有多个else块(因为第一个if或first 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.'
    };
}