代码之家  ›  专栏  ›  技术社区  ›  Moshe Shaham

按enter键提交表单时触发连锁反应

  •  0
  • Moshe Shaham  · 技术社区  · 6 年前

    我有一个简单的表单和提交按钮当我点击按钮时,有一个很好的涟漪效果我希望在用户使用enter键提交表单时出现相同的涟漪效果我找不到怎么做。

    使用最新材质版本的angular 6

    1 回复  |  直到 6 年前
        1
  •  2
  •   Andriy    6 年前

    尝试添加 keydown.enter 窗体的事件侦听器,它将触发 button 的波纹:

    <form (keydown.enter)="btn.ripple.launch({centered:true})">
      <input>
      <button #btn mat-button>Click me!</button>
    </form>
    

    请注意,我补充道 btn 模板引用mat按钮。

    如果要触发ts文件中的涟漪:

    import {Component, ViewChild} from '@angular/core';
    import {MatButton} from '@angular/material';
      .
      .
      .
    @ViewChild('btn') btn: MatButton;
      .
      .
      .
    ripple() {
      this.btn.ripple.launch({
        centered: true
      });
    }
    

    你的HTML应该是:

    <form (keydown.enter)="ripple()">
      <input>
      <button #btn mat-button>Click me!</button>
    </form>
    

    使用 ngSubmit 而不是 向下键.enter 也可以:

    <form (ngSubmit)="ripple()">
      <input>
      <button #btn mat-button>Click me!</button>
    </form>
    

    STACKBLITZ