开发者问题收集

javascript +preventDefault 和 stopPropagation 在 addEventListener 中不起作用

2017-09-05
1893

我有表单并使用 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>
2个回答

您需要使用 event 而不是 this ,其中 event 指的是传递给回调函数的事件参数。 在您的例子中, this 仅指提交按钮。

JSFiddle

现场示例

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

Script47
2017-09-05

您可以添加 事件 而不是 这个 ,并且可以工作:

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

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

    console.log(event);
}

我希望对您有所帮助。

Feras Al Sous
2017-09-05