当我将“.addEventListener”添加到按钮元素时,为什么我的浏览器会在屏幕上闪烁几毫秒

问题描述 投票:0回答:1

每当我调用一个函数在控制台或浏览器上呈现以查看代码如何工作时,被调用的函数,例如带有 addEventListener 的按钮,结果将在浏览器上的几毫秒内闪烁并消失,或者当我 console.log() 时。 我真的不明白为什么会这样,我已经从 Edge 浏览器更改为 Chrome 浏览器,反之亦然。

这只发生在我的 javascript 文件中,特别是当我将“.addEventListener”添加到按钮元素以调用从输入标记元素返回值的函数时。 自从我添加“.addeventListener”以来,它开始在眨眼间闪烁地渲染它调用的结果。这种情况发生在控制台或浏览器上。

即使在另一个函数传递给它之后,它也会发生,因为它们会在一瞬间闪烁。欢迎任何解释。

HTML: 提交

javascript:

const formNum = document.getElementById("formEl") formNum.addEventListener("提交", ()=> const userVehNum = (ownerInput) => { console.log(

please confirm this: ${ownerInput})
);

browser callback rendering addeventlistener console.log
1个回答
0
投票

当您提交表单时,浏览器将向服务器发送请求并重新加载页面。这意味着您对页面所做的任何更改(包括函数调用的结果)都将丢失。

在您的情况下,当您向表单的提交事件添加事件侦听器时,会调用该函数,将结果记录到控制台,然后重新加载页面,导致结果消失。

为了防止这种行为,您可以使用 PreventDefault() 方法来阻止表单提交和重新加载页面。这是代码的更新版本:

const formNum = document.getElementById("formEl");
formNum.addEventListener("submit", (e) => {
  e.preventDefault(); // Add this line to prevent the form from submitting
  const userVehNum = (ownerInput) => {
    console.log(`please confirm this: ${ownerInput}`);
  };
  // Call the userVehNum function with the input value
  userVehNum(document.getElementById("ownerInput").value);
});

通过添加 e.preventDefault(),您可以告诉浏览器停止表单提交的默认行为,即重新加载页面。这应该允许您在控制台中看到函数调用的结果,而不会消失。

© www.soinside.com 2019 - 2024. All rights reserved.