0

我无法使以下 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

4 回答 4

2

简单地说,你不能有多个 else,因为最后一个 else 永远不会被评估......

 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.';
    }

}
于 2013-10-08T19:26:19.623 回答
1
if (
     cbSwitchStatus.getValue()!='P' && v=='' ||
     storePrivate.findExact('disp',v) > -1 ||
     cbServCarrier.getValue() != cbPrivateCarrier.getValue()
 ) {
     return true;
 } else {
     return 'This valid is not valid.';
 }
于 2013-10-08T19:29:26.207 回答
0

最后一个“else”块没有到达它的执行路径。

您需要澄清最终的“其他”条件封装了哪种情况,然后相应地重新设计您的括号,以确保它们反映您的意图。

于 2013-10-08T19:26:36.110 回答
0

您不能有多个 else 块(因为第一个 if 或第一个 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.'
    };
}
于 2013-10-08T19:27:08.100 回答