Javascript 为什么第一个If';不是';声明不起作用?

Javascript 为什么第一个If';不是';声明不起作用?,javascript,validation,if-statement,Javascript,Validation,If Statement,我试图通过检查是否跳过除第一个选项(“选择一个”)之外的其他选项来验证下拉列表 逻辑:值不是“选择”是真的吗?如果是,则返回true(提交表单)。我相信逻辑要求我进行测试,看看该值是否不是第一个选项。我的代码似乎正确,但我想我没有正确地使用“!”运算符 我尝试过“If val不是字符串”的这些版本,但它们不起作用 if(val !== 'choose') if(val != 'choose') //下面的代码示例 <form onsubmit="return validatedM

我试图通过检查是否跳过除第一个选项(“选择一个”)之外的其他选项来验证下拉列表


逻辑:值不是“选择”是真的吗?如果是,则返回true(提交表单)。我相信逻辑要求我进行测试,看看该值是否不是第一个选项。我的代码似乎正确,但我想我没有正确地使用“!”运算符

我尝试过“If 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
测试2
测试3
留言如下:
函数validatedMenu(){
var dd=document.getElementById(“下拉菜单”);
var val=dd.options[dd.selectedIndex]。值;
var txt=dd.options[dd.selectedIndex]。文本;
如果(val!=“选择”){
document.getElementById(“mySpan”).innerHTML=“您必须进行选择。”;
}
否则{
document.getElementById(“mySpan”).innerHTML=“成功!您选择了”+txt;
返回false;
}
返回true;
}

您只需要将逻辑向后翻转。如果
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;
}

您只需要将逻辑向后翻转。如果
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;
}

您只需要将逻辑向后翻转。如果
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;
}

您只需要将逻辑向后翻转。如果
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;
}


我相信逻辑要求我测试该值是否不是第一个选项。我的代码似乎正确,但我猜我没有做“!“运算符正确。这毫无意义……你应该检查它是否是警告“你必须做出选择”的第一个选项……如果不是第一个选项,他已经做出了有效的选择,你不认为吗?我相信逻辑要求我测试该值是否不是第一个选项。我的代码似乎正确,但我猜我没有做”!“运算符正确。这毫无意义……你应该检查它是否是警告“你必须做出选择”的第一个选项……如果不是第一个选项,他已经做出了有效的选择,你不认为吗?我相信逻辑要求我测试该值是否不是第一个选项。我的代码似乎正确,但我猜我没有做”!“运算符正确。这毫无意义……你应该检查它是否是警告“你必须做出选择”的第一个选项……如果不是第一个选项,他已经做出了有效的选择,你不认为吗?我相信逻辑要求我测试该值是否不是第一个选项。我的代码似乎正确,但我猜我没有做”!“操作员正确。这毫无意义……你应该检查它是否是第一个选项,以提醒“你必须做出选择”……如果不是第一个选项,他已经做出了有效的选择,你不认为吗?sphanley-我尝试它时它不起作用。所需逻辑:如果用户选择第一个选项,返回false,并显示消息。”否则,返回true,并显示消息“Success…”。。。“这就是我贴出的剪报所要做的。如果用户选择了第一个选项,If将失败,else将运行,并且返回false。如果他们选择了除第一个选项以外的任何选项,他们将输入If语句并返回true并获得成功。也就是说,我发布了第二种修复方法,将失败场景保留在If中。任何一个都应该按照你的要求去做。斯凡利-谢谢你。我获取了您的代码,删除了else语句中的“return false”,并在第一个IF语句中添加了“return false”,这就成功了。:)啊,是的,那是个错误。如果答案能解决你的问题,我会很感激你接受的!斯潘利-我试过的时候没用。所需逻辑:如果用户选择第一个选项,则返回false,并显示消息“You must make selection”。否则,返回true,并显示消息“Success…”,这就是我发布的剪贴内容。如果用户选择了第一个选项,If将失败,else将运行,并且返回false。如果他们选择了第一个选项以外的任何选项,他们将输入If语句并成功返回true