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>

+0

为什么在stopPropagation之前和之后有一个“'”? –

+0

@PaulFitzgerald很可能是由于帖子的格式。 – Script47

+0

你为什么要添加'after和before'stopPropagation()' –

您需要使用eventthis,其中event指的是传递给你的回调函数的事件参数。在你的情况下,this只是提交按钮。

的jsfiddle

Live Example

打开控制台比较e(事件)和this

您可以添加eventthis和将工作:

var test = document.querySelector('.submit'); 
test.addEventListener('click', checkFunction); 

function checkFunction (event){ 
    event.preventDefault(); 
    event.stopPropagation(); 

    console.log(event); 
} 

我希望帮你。