为什么JQuery中的“else if”语句不起作用?

时间:2014-12-01 06:21:22

标签: javascript jquery if-statement

我的else if语句不起作用会破坏我的脚本。为什么会这样?

    function validateForm (){

    var loginStr;

    loginStr = $("#login").val();



        if (loginStr.length == "") {
            $("#formPseudoContainer").effect('shake', 750 );
                $("#errorArea").text('PLEASE CHOOSE USERNAME');
        };          

        else if (loginStr.length > 0 && loginStr.length < 5) {
            $("#formPseudoContainer").effect('shake', 750 );
                $("#errorArea").text('USERNAME IS TOO SHORT');
         }; 
     }

这很好用:

       function validateForm (){

    var loginStr;

    loginStr = $("#login").val();



        if (loginStr.length == "") {
            $("#formPseudoContainer").effect('shake', 750 );
                $("#errorArea").text('PLEASE CHOOSE USERNAME');
        };          

        if (loginStr.length > 0 && loginStr.length < 5) {
            $("#formPseudoContainer").effect('shake', 750 );
                $("#errorArea").text('USERNAME IS TOO SHORT');
         }; 
     }

我抛弃了其他类似的陈述,因此我不能只使用ifelse陈述。

5 个答案:

答案 0 :(得分:6)

if语句末尾的分号终止if语句;删除它,它会工作。

答案 1 :(得分:3)

长度永远不会返回null如果字符串没有长度它返回0并删除分号如果contion它结束它不会去其他检查其他

 if (loginStr.length == 0) {
    $("#formPseudoContainer").effect('shake', 750 );
        $("#errorArea").text('PLEASE CHOOSE USERNAME');
 }         

else if (loginStr.length > 0 && loginStr.length < 5) {
    $("#formPseudoContainer").effect('shake', 750 );
        $("#errorArea").text('USERNAME IS TOO SHORT');
 }

答案 2 :(得分:0)

因为如果被终止;之后}删除;在}

之后
   if (loginStr.length == "") {
        $("#formPseudoContainer").effect('shake', 750 );
            $("#errorArea").text('PLEASE CHOOSE USERNAME');
    }          

    else if (loginStr.length > 0 && loginStr.length < 5) {
        $("#formPseudoContainer").effect('shake', 750 );
            $("#errorArea").text('USERNAME IS TOO SHORT');
     }; 

答案 3 :(得分:0)

试试这个

function validateForm (){

    var loginStr;

    loginStr = $("#login").val();

    if (loginStr.length == "") {
        $("#formPseudoContainer").effect('shake', 750 );
            $("#errorArea").text('PLEASE CHOOSE USERNAME');
    } else if (loginStr.length > 0 && loginStr.length < 5) {
        $("#formPseudoContainer").effect('shake', 750 );
            $("#errorArea").text('USERNAME IS TOO SHORT');
    }; 
}

删除额外的&#34;;&#34;在IF声明的最后。

答案 4 :(得分:0)

if statementif关键字,条件和语句组成,即

if (condition) statement

在您的情况下(这是一种很好的做法),您选择的陈述是block {...}

if (condition) {...}

但是,在块之后你也加了一个分号。该分号被解释为empty statement。它不是if声明的一部分:

if (condition) {...}
;

要使else if工作,它必须紧跟属于if语句的语句,它们之间不能有任何其他语句(甚至是空语句)。