2012-12-27 64 views
0

我的代碼很簡單。我希望用戶能夠輸入餐廳名稱,並讓我的功能告訴他們該餐廳是否提供可口可樂或百事可樂產品。一小時前它工作正常,但停止工作。現在,無論您輸入什麼內容,它都會顯示「百事可樂」的工作。我的猜測是if語句有問題。document.getElementById('textbox')。值停止工作

<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> 
+4

brbrbrbrbrbrbrbrbrbrbrbrbrbrbrbr.center – elclanrs

+3

' document.getElementById('textbox')。value ==「Cougars」|| 「凱恩郡美洲獅」|| 「Cougars棒球」始終是真實的 –

+0

使用switch語句brah –

回答

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") 

truefalse根據您輸入的內容,第一部分評估,但第二和第三將始終評估爲true

+1

更好的做法是將'document.getElementById('textbox')。value'存儲在變量中以減少滾動的需要。 – Dennis

+0

的確如此,但爲了清晰起見,我是這樣寫的(雖然也許我失敗:)) – MadSkunk

0

您正在使用||運算符不正確。如果你想檢查一個值是否等於許多值之一,你必須明確地表達。例如:

if (a == b || a == c || a == d) 

以另一種方式做它會導致您遇到意外的行爲。

+0

太棒了!謝謝! – user1743825

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"不是錯誤的。爲了解決這個問題,你應該這樣做:

var val = document.getElementById('textbox').value; 
if(val == "Cougars" || val == "Kane County Cougars" || val == "Cougars Baseball") 
+0

謝謝!這幫了大忙! – user1743825

1

其他所有答案都很好,但在這裏是如何我通常做:

var value = document.getElementById('textbox').value; 

if (/^Cougars|Kane County Cougars|Cougars Baseball$/.test(value)) { 
    ... 
} 
+0

太棒了;謝謝! – user1743825

0

試試這個,

var value = document.getElementById('textbox').value; 
if (value == 'Cougars' || value == 'Kane County Cougars' || value == 'Cougars Baseball')