2013-05-13 62 views
2

我在我的JavaScript中有以下代碼。我希望在用戶檢查單選按鈕時發生警報,​​但是當頁面加載時會發生,而單選按鈕被檢查時會發生任何事情。爲什麼?爲什麼我的頁面加載時觸發onchange事件,而不是點擊我的單選按鈕?

var myRadioButton = document.getElementById("myRadioButton"); 
myRadioButton.onchange=alert("Checked!"); 

單選按鈕從未選中開始。在HTML中,它看起來像這樣:

<div class="myRadioButton"><input type="radio" id="myRadioButton" name="radioButtons" />&nbsp; This is my radio button 
</div> 

爲什麼JavaScript會在頁面加載時認爲發生了onchange事件?爲什麼當我真正檢查單選按鈕時它不會識別出變化?

實際上,無論我使用的「onchange」元素如何,當頁面加載時都會彈出警報,根本沒有任何用戶交互。我誤解了「onchange」是如何工作的?

回答

4

你的意思做的是

myradiobutton.onchange = function() { alert('Checked'); }; 

你做什麼都會執行alert -function和功能分配的返回值作爲一個事件處理程序到onchange事件(執行時什麼都不做)

+0

Gotcha中。謝謝!我是一個完整的noob。非常感激。 – 2013-05-13 06:36:02

0

在你的代碼

myradiobutton.onchange = alert('Checked') 

你居然叫警報功能,並指定其返回值作爲事件處理程序。

2

嘗試

<script> 
    var myRadioButton = document.getElementById("myRadioButton"); 

    myRadioButton.onchange = function() { alert("Checked!") }; 
</script> 
+0

不錯,但重要的是將這些代碼包裝在一個** document.ready **事件處理程序 – 2016-07-08 11:20:17

相關問題