angular 2 material keyup.enter完全不点火

angular 2 material keyup.enter完全不点火,angular,angular-material,keyup,Angular,Angular Material,Keyup,我正在尝试按enter键以按下登录表单上的按钮。但事实并非如此。代码如下所示: <div> <button type="button" mat-raised-button (click)="doLogin()" (keyup.enter)="doLogin()"> Sign In </button> </div> 登录 我不知道它为什么不开火。控制台和角度文档中的任何错误都不表明对其工作有任何特殊要求。您正在尝试键入一个按钮,

我正在尝试按enter键以按下登录表单上的按钮。但事实并非如此。代码如下所示:

<div>
  <button type="button" mat-raised-button (click)="doLogin()" (keyup.enter)="doLogin()">
    Sign In
  </button>
</div>

登录

我不知道它为什么不开火。控制台和角度文档中的任何错误都不表明对其工作有任何特殊要求。

您正在尝试键入一个
按钮
,该按钮没有该事件,您应该尝试表单的
输入

<form >
  <input type="text" (keyup.enter)="doLogin()" />
</form


试试这个。这对我来说很好。希望有帮助

<form>
  <input type="text" (keyup.enter) = "doLogin($event)">
</form>

如果控件处于表单中,则按下Enter键时将触发
ngSubmit
事件。要通过单击按钮触发事件,应删除属性
type=“button”
。当按钮位于表单中时,默认类型为
type=“submit”

<form (ngSubmit)="onNgSubmit()">
  <div>
    <input type="text" name="username" placeholder="User name" />
    <button mat-raised-button>Sign In</button>
  </div>    
</form>

您可以在中测试代码。

您的意思是什么?按钮不是输入元素您的上述代码也不起作用我将登录表单包装在另一个问题上是我确实设置了name=“username”,但使用了[(ngModel)]
doLogin(e){
 console.log(e);
}
<form (ngSubmit)="onNgSubmit()">
  <div>
    <input type="text" name="username" placeholder="User name" />
    <button mat-raised-button>Sign In</button>
  </div>    
</form>
export class UserFormComponent {
  onNgSubmit() {
    // Proceed with login...
  }
}