2016-03-28 3 views
1

を働いていない私は、HTMLのセグメントを持っている:ドロップダウンリストとボタンが

<select id="myList"> 
<option value="1"selected="selected">Position 1</option> 
<option value="2">Position 2</option> 
<option value="3">Position 3</option> 
<option value="4">Position 4</option> 
<option value="5">Position 5</option> 
</select> 
<input type="submit" id="go" value="Go to Position"></input> 

スポットライトの位置を選択するようユーザーに促しどの。 JSサイドには次の情報が含まれています:

var select = document.getElementById("myList"); 
var answer = select.options[select.selectedIndex].value; 

if (answer == "1") { 
    document.getElementById("go").onclick = function() { ightAtX = -1.0; lightAtZ = 0.5; }; 
} else if (answer == "2") { 
    document.getElementById("go").onclick = function() { lightAtX = -1.0; lightAtZ = -0.5; }; 
} else if (answer == "3") { 
    document.getElementById("go").onclick = function() { lightAtX = 0.0; lightAtZ = -0.5; }; 
} else if (answer == "4") { 
    document.getElementById("go").onclick = function() { lightAtX = 1.0; lightAtZ = -0.5; }; 
} else if (answer == "5") { 
    document.getElementById("go").onclick = function() { lightAtX = 1.0; lightAtZ = 0.5; }; 
} else { 
    return; 
} 

スポットライトの位置を変更するには、[Go to Position]ボタンをクリックします。ただし、ボタンをクリックしても何も変わりません。私は何が欠けていますか?

+1

送信ボタンは、最初のif文に戻って –

+0

欠落Lをポストの原因になりますか? – Oisin

+0

あなたのイベントの処理はすべて終了しました。単に 'on'要素を選択し、' onclick'関数を与え、その関数の中で 'answer'を選択し、その値に基づいて変数を設定します。 [このように](https://jsfiddle.net/461g6hba/) –

答えて

2

onclick機能の中で選択(回答)を確認する必要があります。答えは一度評価されます(コードが含まれていない場合を除きます)。あなたが指示しない限り、動的に更新されることはありません。このような

何か:

document.getElementById("go").onclick = function() { 
    var select = document.getElementById("myList"); 
    var answer = select.options[select.selectedIndex].value; 

    if (answer == "1") { 
    }... 
} 
+0

ありがとう!それはそれを修正した。 – TRX

+0

問題ありません。これで問題が解決した場合は、これを正しい答えとして選択してください:) – tpdietz

関連する問題