2

我的 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都会在页面加载时弹出警报,根本不需要任何用户交互。我误解了它的onchange工作原理吗?

4

3 回答 3

4

你的意思是

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

您所做的将执行alert-function 并将该函数的返回值作为事件处理程序分配给onchange事件(执行时不会执行任何操作)

于 2013-05-13T06:33:17.517 回答
2

尝试

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

    myRadioButton.onchange = function () { alert("Checked!") };
</script>
于 2013-05-13T06:33:04.593 回答
0

在您的代码中

myradiobutton.onchange = alert('Checked')

您实际上调用了警报函数,并将其返回值分配为事件处理程序。

于 2013-05-13T06:31:17.173 回答