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

Javascript 为什么在加载页面时而不是单击单选按钮时触发onchange事件?,javascript,radio-button,dom-events,onchange,Javascript,Radio Button,Dom Events,Onchange,我的Javascript中有以下代码。我希望警报发生在用户检查单选按钮时,但它发生在页面加载时,而单选按钮被检查时什么也不会发生。为什么? var myRadioButton = document.getElementById("myRadioButton"); myRadioButton.onchange=alert("Checked!"); 单选按钮开始时未选中。在HTML中,它如下所示: <div class="myRadioButton"><input type="r

我的Javascript中有以下代码。我希望警报发生在用户检查单选按钮时,但它发生在页面加载时,而单选按钮被检查时什么也不会发生。为什么?

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
中使用什么元素,页面加载时都会弹出警报,而不需要任何用户交互。我是否误解了更改后的
是如何工作的?

在您的代码中

myradiobutton.onchange = alert('Checked')
您实际上调用了警报函数,并将其返回值指定为事件处理程序。

试试看

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

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

var myRadioButton=document.getElementById(“myRadioButton”);
myRadioButton.onchange=函数(){alert(“Checked!”)};
你的意思是

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

您所做的将执行
警报
-函数,并将该函数的返回值作为事件处理程序分配给
onchange
事件(执行时将不起任何作用)

明白了。谢谢我是个十足的傻瓜。非常感谢。很好,但重要的一点是将此代码包装在document.ready事件处理程序中