2014-02-17 54 views
0

此代碼獲取用戶輸入並將其以 「選擇」 的替代品,實施例JS:輸出不一致

第一輸入
用戶輸入:

Apple 

處理(內部會發生什麼):

"img2/" + Apple + ".jpg"; 

輸出:

Apple.jpg (image) 

的問題是,一旦用戶輸入不具有相應的圖像的代碼的查詢時,輸出前一個

第二輸入 用戶輸入:

Orange 

過程(什麼內發生) :

"img2/" + Apple + ".jpg"; 

輸出:

Apple.jpg (image) //wrong incorrect 

var q = document.getElementById("code"); 


if (q.selectedIndex > 0) { 

var selected = q.options[q.selectedIndex].value; 
var src = "img2/" + selected + ".jpg"; 
var img = document.getElementById("placeholderImg"); 
img.src = src; 
img.style.display = "inline"; 

} 

<select name="code" id="code" size="" disabled="true" hidden="true"> 
<option value="Apple">Apple</option> 
<option value="Atis">Atis</option> 
//so on and so forth 

我該如何解決這個問題?任何建議,意見表示高度讚賞線

if (q.selectedIndex > 0) 

selectedIndex屬性是0當第一行被選中(在你的情況下,「蘋果」)內

+0

其中q.selectedIndex定義? – Sam

+0

@Sam我更新它,所以你可以看到是q.selectedIndex被定義爲 –

+0

是否因爲if(q.selectedIndex> 0){'失敗,所以塊永遠不會執行? – Sam

回答

0

你的錯誤規定。 因此,如果只有選擇了「Apple」以外的其他語句纔會有效。
selectedIndex property is -1 when nothing selected,not 0

你應該用下面的語句替換:

if (q.selectedIndex > -1) 
+0

我會嘗試先生 –

+0

對不起,先生髮生同樣的問題 –

+0

@SOS你可以設置一個小提琴來重現你的錯誤在http://jsfiddle.net/? – RononDex