Javascript:我可以't找到正确的方式来表达布尔“;如果“;以得到我想要的结果
Javascript: I can't find the correct way to phrase a Boolean "IF" to get the result I want
好吧,我是javascript和html的新手,我正在为类内赋值编写一个基本表单。它基本上是为了教我们如何从表格中获取元素并用它们做一些事情。
这是任务的第三部分,我对前两部分没有意见。现在,我不能让这个工作。
function lessonLevel_onclick(){
var code=document.getElementById("txtCode");
var level=document.getElementById("txtLevel");
alert(code.value);
if (code.value == "o" || "O"){
level.value="Otter";
alert(code.value);
}
else if(code == "n" || "N"){
level.value="Newt";
alert(code.value);
}
else if(code == "s" || "S"){
level.value="Sunfish";
alert(code.value);
}
else if(code == "c" || "C"){
level.value="Crocodile";
alert(code.value);
}
else if(code == "w" || "W"){
level.value="Whale";
alert(code.value);
}
else{
level.value="Unknown";
}
}
这些警报除了帮助我弄清楚它实际到达的地方之外,没有任何作用。基本上,无论我在表单中输入什么,输出都是Otter。。。就好像输入是什么并不重要,它总是使第一个"if"语句为true。
它应该做什么:用户输入"o"或"o",表单输出游泳级别"Otter"。。。"n"或"n",它是Newt。。。真的,真的,基本的。。。这就是为什么它让我发疯的原因。
我看不出我做错了什么。if语句"alert(code.value)"之前的警报与输入相同。意味着输入正确。
所以我知道问题出在我的布尔值中。它显然没有进行适当的比较。
知道我哪里错了吗?
如果它有帮助的话,这里是我写的html代码。。但我确信这不是问题所在:
<! DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="scripts/lessonLevel.js"></script>
</head>
<body>
<noscript>Please Enable Javascript!</noscript>
<form>
<h2>Swimming Lesson Level</h2>
<p>Enter Lesson Code:
<input type="text" id="txtCode"></p>
<p>Lesson Level:
<input type="text" id="txtLevel" readonly="readonly"></p>
<input type="button" onclick="lessonLevel_onclick()" value="Determine Level">
<button type="reset" value="Reset">Reset</button>
</form>
</body>
</html>
而且,正如我所说,任何输入都会使输出成为"Otter",即使我将其留空。。。
顺便说一句:我试着先把code.value变成一个字符串,但似乎没有帮助。。
提前感谢您的帮助!如果有什么我可以补充澄清的,请告诉我!
不能像现在这样使用或运算符。更改
if (code.value == "o" || "O"){
至
if (code.value == "o" || code.value == "O"){
更好的是:在检查之前将输入转换为小写:
var codeValue = code.value.toLowerCase();
if (codeValue == "o") { ..
您应该不要这样做:
if (code.value == "o" || "O") // This is BAD
// This will result in true if either
// code.value == "o" evaluates to true, or
// "O" evaluates to true, because strings evaluate to true
要真正检查code.value是"o"还是"o",请执行以下操作:
if (code.value == "o" || code.value == "O") {
// code here
}
你应该做一些更像这样的事情:
if (code.value.toLowerCase() === "o") {
注意,您几乎应该总是使用"==="而不是"==",因为前者测试某个值和数据类型(数字、字符串、布尔值、对象等)是否与另一个匹配。"=="在测试值之前执行类型转换。例如:
if ("42" == 42) { // true
if ("42" === 42) { // false
尝试编写正确的if语句。
if (code.value == "o" || code.value == "O"){
//Code to execute
}
- 如果 a 为 false,则 if(a) === if(false)
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- 如果href包含X,请更改href
- 如果localstorage为空,则显示欢迎消息
- javascript中的布尔条件
- 点击后隐藏潜水?(但如果Div是一面旗帜呢?)
- 如果元素's的ID以数字开头
- 为什么 1.2 == true 返回 false 如果布尔值 (1.2) 实际上是真的
- 在EaselJS中,如果鼠标按下,我如何获得布尔值
- Javascript:我可以't找到正确的方式来表达布尔“;如果“;以得到我想要的结果
- 如果布尔值为真,如何选中复选框
- 如果查询搜索包含元素,如何返回布尔值
- 如果在javascript中测试布尔值
- 如果在jqgrid中使用了clickableCheckBox格式化程序,如何查找布尔列值
- 如果没有被使用,为什么返回一个布尔值
- 如何获取对象数组中布尔值的计数(如果为 true)