0

所以我有以下 JavaScript 代码:

<script type="text/javascript">
    function clearRadioButtons()
    {
        document.getElementById("radiobutton1").checked="";
        //etc for more radio buttons
    }
</script>

然后在我的表单中,我有以下代码:

<select name="whatever" onclick="clearRadioButtons()">
    <option onclick="clearRadioButtons()"></option>
    //and so on and so forth for <option> tags with values
</select>

问题是,即使我单击selectoption元素,该函数也不会被实际调用。如果我在浏览器的调试器中调用 JS 函数,它可以正常工作,但不会触发事件。我在这里做错了什么?我觉得这很简单,但谁知道呢。

TIA。

4

3 回答 3

2

我认为您想在您的选择元素上使用 onchange 事件。

function clearRadioButtons () {
    document.getElementById("radiobutton1").checked="";
    //etc for more radio buttons
}

window.onload = function () {
  //Event binding... 
  document.getElementById('whatever').onchange = clearRadioButtons;
};

<select id="whatever" name="whatever">
    <option></option>
    ...
</select>
于 2009-09-09T06:04:03.333 回答
2

您将函数传递为

  clearRadioButtons().

括号使函数立即执行。您应该使用不带 () 的 clearRadioButtons。这样,它就会传递对函数的引用。

于 2009-09-09T06:04:07.730 回答
1

Ikke 所说的,但我也应该指出,您不应该将 checked 属性设置为 "",因为它是 DOM 属性,而不是您正在修改的元素属性 - 将其设置为布尔值。

于 2009-09-09T06:08:53.980 回答