gpt4 book ai didi

javascript - JS - 附加事件监听器并返回

转载 作者:行者123 更新时间:2023-12-02 17:40:55 25 4
gpt4 key购买 nike

我通常使用以下 JavaScript 函数将事件附加到 DOM 中的元素。

function addEventHandler(elem,eventType,handler){
if (elem.addEventListener){
elem.addEventListener (eventType,handler,false);
}
else if (elem.attachEvent){
elem.attachEvent ('on'+eventType,handler);
}
}

我想在以下上下文中使用它,将一些 AJAX 附加到表单元素 onsubmit,然后返回 false,以便表单实际上并未提交。

var elemnt = document.getElementById('myForm');
addEventHandler(elemnt, 'submit', function(){
// Do stuff
return false;
});

过去,我会附加一个事件处理程序,如下所示:onsubmit="return myfunction();",但我不知道如何在那里获取该return当附加事件处理程序时,我的函数可以阻止使用 JavaScript 提交表单。

这是如何完成的?

最佳答案

尝试:

var element = document.getElementById('myForm');
if (element.addEventListener) {
element.addEventListener('submit', myEventHandler);
}
else {
element.attachEvent('onclick', myEventHandler);
}

function myEventHandler(event){
event.preventDefault();
// Do stuff
}

更新event.preventDefault() 阻止在调用事件的方法之后对事件进行正常处理。它不会阻止其他事件监听器的执行(使用 event.stopImmediatePropagation() 来执行此操作),但会取消事件的默认效果。因此在这种情况下应该阻止表单提交。

更新2JavaScript 引擎将调用事件监听器(您的函数)并向其传递一个描述事件的事件对象:其类型、作为事件目标的对象...

有关事件监听器的详细说明,请参阅 here .

关于javascript - JS - 附加事件监听器并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22230561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com