首页 > 解决方案 > preventDefault() 不起作用,我怎样才能使它正常工作?

问题描述

preventDefault()无法正常工作。当我按下登录按钮时,页面刷新,但preventDefault()它不应该。

我试过了stopPropagation(),但也有同样的问题。

打字稿:

loginUser(loginevent){
  loginevent.preventDefault()
  const target = loginevent.target
  const username = target.getElementById('username')
  const password = target.getElementById('pasword')
  console.log(username, password)
}

HTML:

  <form (submit)="loginUser($loginevent)">
    <input type="text" placeholder="Benutzername" id="username">
    <input type="text" placeholder="Passwort" id="password">
    <input type="submit" value="Login">
  </form>

loginevent.preventDefault()我按下登录按钮时,应该防止页面重新加载。

标签: htmlangulartypescript

解决方案


您必须$event作为参数传递,而不是任何其他词。$event是获取事件数据的保留关键字。

这是Angular 文档所说的:

框架将事件参数(由 $event 表示)传递给处理程序方法,该方法处理它:

试试这个:

<form (submit)="loginUser($event)">
  <input type="text" placeholder="Benutzername" id="username">
  <input type="text" placeholder="Passwort" id="password">
  <input type="submit" value="Login">
</form>

推荐阅读