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

Why does is my onchange event triggered when my page loads instead of when I click my radio button?

本文关键字:我的 单选按钮 事件 onchange 为什么 加载      更新时间:2023-09-26

我的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的工作原理?

你想做的是

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

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

try

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

在你的代码中

myradiobutton.onchange = alert('Checked')

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