2016-09-21 80 views
1

我一直在玩弄腳本,無法讓它工作。它總是默認爲選項3。如果其他人使用javascript

任何人都可以幫忙嗎?

<select id="select"> 
    <option>Please select</option> 
    <option value="option1">option1</option> 
    <option value="option2">option2</option> 
    <option value="option3">option3</option> 
</select> 
<div id="demo"></div> 

<script> 

document.getElementById("select").addEventListener("change", myFunction); 

function myFunction() { 
    if (document.getElementById("select").value = "option1") { 
    option = "option 1 chosen"; 
    } 
    if (document.getElementById("select").value = "option2") { 
    option = "option 2 chosen"; 
    } 
    if (document.getElementById("select").value = "option3") { 
    option = "option 3 chosen"; 
    } 
    document.getElementById("demo").innerHTML = option; 
} 

</script> 
+1

'='是賦值,'=='是比較 – j08691

+0

在你所有的if查詢中都是sigle等號不對。它必須是'=='而不是'=' – reporter

+0

該條件具有賦值語句而不是比較語句。請正確學習。 –

回答

0

您應該使用===代替=

在註釋中規定, 「=」 是一個分配的功能, 「===」 是一個比較函數。

function myFunction() { 
if (document.getElementById("select").value === "option1") { 
option = "option 1 chosen"; 
} 
if (document.getElementById("select").value === "option2") { 
option = "option 2 chosen"; 
} 
if (document.getElementById("select").value === "option3") { 
option = "option 3 chosen"; 
} 
document.getElementById("demo").innerHTML = option; 
} 
+0

我認爲你的意思是'==',而不是'==='。 –

+2

不,「==」是truthy,在我所做的所有專業代碼中,「===」是首選的方法。 http://stackoverflow.com/questions/5323377/difference-between-and-in-js –

+1

編號'=='是比較值的標準。 '==='是比較值和類型的標準。在這種情況下,他正在比較價值。 **例如**鑑於'x = 5','x ==「5」'是真的。 'x ===「5」'是錯誤的。 –