为什么浏览器会触发我的onclick功能?

时间:2014-11-02 01:45:01

标签: javascript onclick

我正在尝试创建一个onclick事件(javascript),通过按下按钮从HTML表单获取输入数据。我在我的JS文件中使用window.onload函数。 我的表格如下:

<div class="set-the-clock">
    <form name="settheclock">
        <span>Hours: </span><input type="text" name="fhours"><br>
        <span>Minutes: </span><input type="text" name="fminutes"><br>
        <span>Seconds: </span><input type="text" name="fseconds"><br>
        <input type="button" id="send" value="Enter">
    </form>

我的onclick事件:

document.getElementById("send").addEventListener("click",setTheClockByButton());

和我的setTheClockByButton():

function setTheClockByButton() {
    alert("wtf");
    setTheClock(setHour, setMinute, setSecond);

}

当我在谷歌浏览器中按下视图时,会显示带有wtf的警报,所以看起来我的按钮被“自身”点击了,我不知道为什么:(

3 个答案:

答案 0 :(得分:2)

删除setTheClockByButton()中的括号,当您创建一个实际设置变量的函数时。创建函数的长手就是这样。

var functionName = function() {
    //Your code here
};

因此,要将函数分配给处理程序,必须使用函数 variable name,但要调用函数,请添加括号。在这种情况下,您只需要变量名称,因此它看起来像这样。

document.getElementById("send").addEventListener("click",setTheClockByButton);

答案 1 :(得分:0)

您在设置事件侦听器时正在执行setTheClockByButton()。不要使用()

document.getElementById("send").addEventListener("click",setTheClockByButton);

答案 2 :(得分:0)

删除setTheClockByButton()中的括号,例如:

document.getElementById("send").addEventListener("click",setTheClockByButton);

它没有用,因为你用这些括号调用函数而不是将它绑定到事件上。

有关addEventListener基本用法的详细信息,请查看here