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

как я могу это исправить? любое предложение мнение высоко ценится

+0

где определяется q.selectedIndex? – Sam

+0

@Sam i обновил его, чтобы вы могли видеть, что q.selectedIndex определен –

+0

Это потому, что 'if (q.selectedIndex> 0) {' fail, так что блок никогда не выполняется? – Sam

ответ

0

Ваша ошибка лежит в пределах линии

if (q.selectedIndex > 0) 

Свойство selectedIndex является 0 при выборе первой строки (в вашем случае «Яблоко»). Это утверждение if будет работать только в том случае, если выбрано что-то другое, чем «Apple».
Недвижимость selectedIndex является -1, когда ничего не выбрано, а не 0!

Вы должны заменить его следующим утверждением:

if (q.selectedIndex > -1) 
+0

Я попробую это сэр –

+0

извините, сэр такая же проблема возникает –

+0

@SOS Можете ли вы затем настроить скрипт, чтобы воспроизвести свою ошибку на http://jsfiddle.net/? – RononDex

Смежные вопросы