基本的JavaScript问题 - 不调用函数的事件处理程序?

时间:2009-09-09 06:01:10

标签: javascript onclick

所以我有以下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。

3 个答案:

答案 0 :(得分:2)

我认为你想在select元素上使用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>

答案 1 :(得分:2)

您将函数传递为

  clearRadioButtons().

括号使得函数正确执行。您应该使用clearRadioButtons,而不使用()。这样,它传递了对函数的引用。

答案 2 :(得分:1)

Ikke说了什么,但我也应该指出你不应该将checked属性设置为“”,因为它是DOM属性而不是你正在修改的元素属性 - 将它设置为布尔值。