2014-02-17 45 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