JavaScript + preventDefault和stopPropagation不工作addEventListener
问题描述:
我有窗体和使用addEventListener表单提交,我试图阻止表单提交后的页面加载。JavaScript + preventDefault和stopPropagation不工作addEventListener
注意:我想使用addEventListener函数。
var test = document.querySelector('.submit');
test.addEventListener('click', checkFunction);
function checkFunction(){
console.log(test);
this.preventDefault();
this.`stopPropagation`();
}
<form>
<input type="text" >
<input type="submit" value="submit" name="submit" class="submit">
</form>
答
您需要使用event
不this
,其中event
指的是传递给你的回调函数的事件参数。在你的情况下,this
只是提交按钮。
的jsfiddle
打开控制台比较e
(事件)和this
。
答
您可以添加event
不this
和将工作:
var test = document.querySelector('.submit');
test.addEventListener('click', checkFunction);
function checkFunction (event){
event.preventDefault();
event.stopPropagation();
console.log(event);
}
我希望帮你。
为什么在stopPropagation之前和之后有一个“'”? –
@PaulFitzgerald很可能是由于帖子的格式。 – Script47
你为什么要添加'after和before'stopPropagation()' –