2014-02-04 5 views
1

У меня есть код, который должен позволить мне показывать div id = 'yestext', когда в раскрывающемся списке выбран «Да». Но это не работает. Я не знаю, что не работает, но что-то явно не так.Javascript selectedindex не работает

JS

function text() { 
     if (document.getElementById("text").selectedIndex == "0") { 
      document.getElementById("yestext").style.display = "block"; 
     } 
     else { 
      document.getElementById("yestext").style.display = "none"; 
     } 
    } 

HTML

<select id='text' onchange='text()'> 
    <option value="0">Yes</option> 
    <option value="1">No</option> 
</select> 
<div style='display:none;' id='yestext'> 
    What text would you like displayed? 
    <input type='text' class='text' name='type' value size='20'/> 
</div> 

Вот JSFiddle, содержащий мой код: http://jsfiddle.net/4w9fh/

+0

Похоже [ваш код] (http://jsfiddle.net/FvuLu/) отлично работает ... У оригинала только есть проблема с синхронизацией. – Teemu

+0

Что значит «время»? – user3263266

+0

Ниже выпадающего списка библиотеки вы можете найти другое раскрывающееся меню, с помощью которого вы можете выбрать место для сценария. В вашей скрипке вы выбрали «Onload», который не работает с globals в jsFiddle. В моей скрипке я выбрал «No wrap -in head». Здесь также был ответ, в котором вам было рекомендовано удалить цитаты вокруг '0', так как' selectedIndex' возвращает число. – Teemu

ответ

0

Ваш код прекрасен. У вас был набор JSFiddle для запуска вашего кода в OnLoad и он обернул функцию text(), чтобы он не добавлял ее в глобальное пространство имен. Я исправил его, переместив js в голову, и теперь он работает.

Я также назвал функцию text(), когда html заканчивает загрузку, чтобы принять во внимание браузер, помнящий последний выбор.

Вот обновленный код. http://jsfiddle.net/4w9fh/2/

0

Я не могу комментировать, как моя репутация меньше, чем 50. Но тестирование кода работает нормально, то же копировать/вставить код только добавить HTML и головные метки. Следующий код, который я тестировал, работает нормально.

<!DOCTYPE html> 
<html> 
<head runat="server"> 
    <title></title> 
<script> 
    function text() { 
     if (document.getElementById("text").selectedIndex == "0") { 
      document.getElementById("yestext").style.display = "block"; 
     } 
     else { 
      document.getElementById("yestext").style.display = "none"; 
     } 
    } 
</script> 
</head> 
<body> 
<select id='text' onchange='text()'> 
    <option value="0">Yes</option> 
    <option value="1">No</option> 
</select> 
<div style='display:none;' id='yestext'> 
    What text would you like displayed? 
    <input type='text' class='text' name='type' value size='20'/> 
</div> 
</body> 
</html> 
Смежные вопросы