我的代码非常简单。我希望用户能够输入餐馆名称并让我的功能告诉他们该餐厅是否供应可口可乐或百事可乐产品。它在一小时前工作正常,但停止工作。现在,它显示了“百事可乐”的作品,无论你输入什么内容。我的猜测是if语句有问题。
<html>
<noscript><b><center><font size="16">This app requires JavaScript to be enabled. Enable JavaScript on your browswer to make it work.</font></center></b></noscript>
<center>
<form onsubmit="popproducts()">
<br><br><br><br><br><br><br><br><br>
<input id="textbox" type="text" style="height: 100px; width: 500px" value=""></input>
</br></br></br></br></br></br></br></br></br>
</form>
</center>
<script type="text/javascript">
function popproducts()
{
if(document.getElementById('textbox').value == "Cougars" || "Kane County Cougars" || "Cougars Baseball")
{
document.write('<center><br><font color="#0000FF" size=20></b>Pepsi</b></font></br></center>');
document.write('<br><br><center><form><input type="button" style="height: 100px; width: 100px" value="Back" onClick="history.go(-1);return true;"></form></center></br></br>');
}
if(document.getElementById('textbox').value == "Burge" || "Iowa" || "University of Iowa")
{
document.write('<center><br><font color="#FF0000" size=20><b>Coke</b></font></br></center>');
document.write('<br><br><center><form><input type="button" style="height: 100px; width: 100px" value="Back" onClick="history.go(-1);return true;"></form></center></br></br>');
}
}
</script>
</html>
答案 0 :(得分:3)
这就是界限:
if(document.getElementById('textbox').value == "Cougars" || "Kane County Cougars" || "Cougars Baseball")
应该:
if(document.getElementById('textbox').value == "Cougars" || document.getElementById('textbox').value == "Kane County Cougars" || document.getElementById('textbox').value == "Cougars Baseball")
第一部分的评估结果为true
或false
,具体取决于您输入的内容,但第二部分和第三部分的评估结果始终为true
。
答案 1 :(得分:1)
这是你的问题:
if(document.getElementById('textbox').value == "Cougars" || "Kane County Cougars" || "Cougars Baseball")
当您使用或运算符if
获得||
语句时,praser会将其解释为:
if(doc....value == "Cougars || "Kane Country Cougars" != false...)
换句话说,if语句始终是 true ,因为字符串"Kane Country Cougars"
不是false。要修复它,你应该这样做:
var val = document.getElementById('textbox').value;
if(val == "Cougars" || val == "Kane County Cougars" || val == "Cougars Baseball")
答案 2 :(得分:1)
所有其他答案都没问题,但我通常会这样做:
var value = document.getElementById('textbox').value;
if ( /^Cougars|Kane County Cougars|Cougars Baseball$/.test( value ) ) {
...
}
答案 3 :(得分:0)
您错误地使用了||
运算符。如果要检查值是否等于多个值之一,则必须明确表达。例如:
if ( a == b || a == c || a == d )
以其他方式执行此操作将导致您遇到的意外行为。
答案 4 :(得分:0)
试试这个,
var value = document.getElementById('textbox').value;
if (value == 'Cougars' || value == 'Kane County Cougars' || value == 'Cougars Baseball')