为什么第一个If'is Not'语句不起作用?

时间:2014-10-08 21:58:31

标签: javascript validation if-statement

我试图通过检查除第一个选项以外的其他内容("选择一个")来跳过下拉

逻辑:值是不是"选择"?如果是,则返回true(提交表单)。我相信逻辑要求我测试一下这个值是不是第一个选项。我的代码似乎是正确的,但我想我不是在做#34;!"操作员正确。

我已经尝试过这些版本的"如果val不是字符串;但他们没有工作。

 if(val !== 'choose') 
 if(val != 'choose') 

//下面的代码示例

<form onsubmit="return validatedMenu()">
    <select id="dropDown">
        <option value="choose">Choose one...</option>
        <option value="1">test1</option>
        <option value="2">test2</option>
        <option value="3">test3</option>
    </select>  
    <input type="submit" value="select" />
</form>
<div>message here: <span id="mySpan"></span></div>

    function validatedMenu() {
        var dd = document.getElementById("dropDown");
        var val = dd.options[dd.selectedIndex].value;
        var txt = dd.options[dd.selectedIndex].text;

        if(val != 'choose') {
            document.getElementById("mySpan").innerHTML = "You must make a selection.";
        }
        else { 
            document.getElementById("mySpan").innerHTML = "Success! You chose " + txt;
            return false;
            }
    return true;
    }

1 个答案:

答案 0 :(得分:3)

你的逻辑向后翻转。如果val != 'choose',则表示用户已进行选择。但是,在if语句中,您运行的逻辑是什么时候没有。你只需要翻转if / else的内容:

function validatedMenu() {
    var dd = document.getElementById("dropDown");
    var val = dd.options[dd.selectedIndex].value;
    var txt = dd.options[dd.selectedIndex].text;

    if(val != 'choose') {
        document.getElementById("mySpan").innerHTML = "Success! You chose " + txt;
        return true;
    }
    else { 
        document.getElementById("mySpan").innerHTML = "You must make a selection.";
    }
    return false;
}

但是,如果由于某种原因想要将成功条件作为else而失败条件作为if,则只需要在if()中反转您正在评估的内容,以便选择第一个选项将使其成立:

function validatedMenu() {
    var dd = document.getElementById("dropDown");
    var val = dd.options[dd.selectedIndex].value;
    var txt = dd.options[dd.selectedIndex].text;

    if(val == 'choose') {
        document.getElementById("mySpan").innerHTML = "You must make a selection.";
        return false;
    }
    else { 
        document.getElementById("mySpan").innerHTML = "Success! You chose " + txt;
        }
return true;
}