2

我在向按钮元素添加事件时遇到问题。

问题

应该是事件处理程序的函数在页面重新加载和单击按钮时触发。

我希望它仅在单击按钮时触发。

这是我的代码:

index.html 文件

<form id="contact_form">
    (Some form fields here)
    <button id="form_submit" value="send">Send</button>
</form>
<script src="contact_form.js"></script>

contact_form.js 文件

var submit_button = document.getElementById('form_submit');

submit_button.addEventListener("click", test_click_event());

function test_click_event()
{
     alert("Button clicked");
}

我正在使用 Chrome 进行调试。

4

3 回答 3

4
submit_button.addEventListener("click", test_click_event);

不需要括号

于 2013-07-09T14:33:03.413 回答
1

() 括号调用函数执行删除它们或使用这个:

var submit_button = document.getElementById('form_submit');

    submit_button.addEventListener("click", function(){test_click_event();});

    function test_click_event()
    {
         alert("Button clicked");
    }

演示

于 2013-07-09T14:32:55.043 回答
1

您可以保留括号,但您需要添加一个匿名函数。见这里:https ://www.w3schools.com/jsref/met_document_addeventlistener.asp

例如:

submit_button.addEventListener("click", function (){
    test_click_event();
});
于 2019-11-06T20:02:05.193 回答