gpt4 book ai didi

javascript - 我怎样才能在 dispatchEvent 上防止默认()?

转载 作者:搜寻专家 更新时间:2023-11-01 04:51:29 26 4
gpt4 key购买 nike

我在表单上有一个提交事件处理程序(以捕获使用 enter 提交表单的人,有时我需要手动触发(由用户点击提交按钮以外的其他内容触发) ,通过 dispatchEvent。

虽然我希望它实际提交表单,但是一旦 dispatchEvent 被触发,我似乎无法取消它?

myForm.addEventListener('submit', function(e) {
e.preventDefault();
console.log(e.defaultPrevented); // false
});

myForm.dispatchEvent(new Event('submit', {'detail': 'mydetail'}));

在 Chrome 中,这仍然会输出 false,但表单不会提交(所需的行为)。事实上,即使我删除了 preventDefault() 行,它仍然不会提交?

但是,Firefox 是另一回事,它总是提交表单。

我怎样才能改变这个?

最佳答案

您必须使用 cancelable 属性显式编码您的事件为 TRUE,默认情况下不会处理。

 myForm.dispatchEvent(new Event('submit', {'detail': 'mydetail', cancelable: true}))

关于javascript - 我怎样才能在 dispatchEvent 上防止默认()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40916300/

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