gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 19:33:50 24 4
gpt4 key购买 nike

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

逻辑:该值真的不是“选择”吗?如果是,则返回 true(提交表单)。我相信逻辑要求我测试该值是否不是第一个选项。我的代码看起来是正确的,但我想我没有执行“!”操作正确。

我尝试过这些版本的“如果 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;
}

最佳答案

你的逻辑颠倒了。如果 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;
}

关于javascript - 为什么第一个 If 'is Not' 语句不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26267156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com