2016-02-01 2 views
0

Я пытаюсь создать генератор случайных кавычек на основе ТВ-шоу. После того, как пользователь выберет шоу и нажмите кнопку «Отправить», программа должна отображать случайную цитату в зависимости от выбранных сериалов. Все кавычки расположены в их массивах.Доступ к элементу SELECT и элементу массива

Мой код ниже. Не могли бы вы помочь мне понять, почему он не работает и как его исправить?

<!DOCTYPE html> 
<html> 
<body> 

<h3>A demonstration of how to access a SELECT element</h3> 

<select id="mySelect" size="2"> 
    <option value="1">Suits</option> 
    <option value="2">Supernatural</option> 
</select> 

<p>Click the button to select the show and display a random quote.</p> 

<button onclick="myFunction();">Submit</button> 

<p id="demo"></p> 

<script> 
function myFunction() { 
    var suits = new Array("Specter is fat", "Ross is fat", "Pearsonis fat", "Litt is fat", "Zane is fat"); 
    var supernatural = new Array("Dean is fat", "Sam is fat", "Castiel is fat"); 
    var x = document.getElementById("mySelect").value; 
    switch (x) { 
     case 1: 
     var quote = suits[Math.floor(Math.random()*suits.length)]; 
     document.getElementById("demo").innerHTML = quote; 
     break; 
     case 2: 
     var quote = supernatural[Math.floor(Math.random()*supernatural.length)]; 
     document.getElementById("demo").innerHTML = quote; 
     break; 
    }; 
} 
</script> 

</body> 
</html> 
+2

Можете ли вы уточнить, как он «не работает» - просто не отображается, какая-то ошибка и т. Д.? Это может помочь уменьшить проблему. – Erica

ответ

1

Значение x указано как строка, но ваш JavaScript switch ищет целое число. Он должен работать так, как ожидалось, если вы используете строки вместо:

switch (x) { 
    case "1": 
     // stuff 
    case "2": 
     // stuff 
} 
0

Вы можете увидеть хороший способ получить значение выбранного параметра в этом post. Ваша переменная quote не установлена. Вы можете видеть в этом fiddle, что ваша переменная x установлена, quote никогда не устанавливается, чтобы она никогда не отображалась.

Прошу прощения, у меня мало времени во время перерыва, чтобы ответить на это. Я не могу сказать вам, почему код внутри случаев не работает. Но, возможно, этот ответ даст вам возможность начать.

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