JS:输出不一致

时间:2014-02-17 09:42:08

标签: javascript html5

此代码获取用户输入并将其替换为“selected”,示例

第一输入
用户输入:

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

我该如何解决这个问题?任何建议意见都表示高度赞赏

1 个答案:

答案 0 :(得分:0)

你的错误在行内

if (q.selectedIndex > 0)

选择第一行时selectedIndex属性为0(在您的情况下为“Apple”)。 因此,if语句仅在选择“Apple”以外的其他内容时才有效 如果未选择任何内容,则selectedIndex属性为-1,而不是0

您应该使用以下语句替换它:

if (q.selectedIndex > -1)