以角度形式使用多个按钮的正确方法

Dua*_*nnx 14 angular angular-forms

我正在构建一个带有角形的形状,它可以很好地使用1个按钮.但是当我想要2个按钮时,它很难处理.

我想要1个按钮reset和1个按钮submit.reset必须放在之前submit.这是模板:

<form (ngSubmit)="submit()" [formGroup]="form">
    //inputs...
    <button type="submit" (click)="reset($event)">reset</button>
    <button type="submit">submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

当我按下enter一个输入时,formsubmit()和 两个reset($event)功能.点击reset按钮时也一样.我的期望是:

  • enter或单击submit按钮时,表单仅启动submit()功能
  • 单击reset按钮时,表单只有fire reset()功能

我能找到一个走一圈之前增加了隐藏式按键reset 按键,调event.stopPropagation(); event.preventDefault()reset()功能.但它很难看.有干净的方法吗?任何帮助,将不胜感激.非常感谢!

Ste*_*ota 24

您必须将重置按钮设置typebutton,而不是submit.你必须明确地设置它,因为属性的默认值typesubmit:

<form (ngSubmit)="submit()" [formGroup]="form">
    //inputs...
    <button type="button" (click)="reset($event)">reset</button>
    <button type="submit">submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

  • 有类似的问题.我有两个按钮 - 第一个没有定义类型,第二个是`type ="submit"`.问题是,在表单中输入第一个按钮时,单击而不是提交按钮.一旦我将'type = button`添加到第一个按钮,然后在输入键上引发第二个按钮.一切都按预期工作.谢谢. (3认同)