2013-05-13 93 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

相关问题