为什么我的页面加载时触发了onchange事件而不是单击我的单选按钮?

时间:2013-05-13 06:25:08

标签: javascript javascript-events radio-button onchange

我的javascript中有以下代码。我希望在用户检查单选按钮时发生警报,​​而是在页面加载时发生,并且在单选按钮被检查时发生NOTHING。为什么呢?

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”是如何运作的吗?

3 个答案:

答案 0 :(得分:4)

你的意思是

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

您所做的将执行 alert - 函数,并将该函数的返回值指定为onchange事件的事件处理程序(执行时无效)

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

在您的代码中

myradiobutton.onchange = alert('Checked')

您实际上调用了alert函数,并将其返回值指定为事件处理程序。