【问题标题】:Angular Form does not submit on enter when not focused未聚焦时,Angular Form 不会在输入时提交
【发布时间】:2019-03-01 21:48:08
【问题描述】:

我有一些 Angular 6 表单,我专注于第一个可用字段。它们包含一个提交按钮,当我按下回车时,表单会自动提交并触发 ngSubmit 事件。

有一种特殊的形式只包含一个广播组,我不关注任何领域。在这种情况下,不会触发 ngSubmit。

如果我单击一个单选按钮然后按 Enter,则表单会正确提交。

是否有任何方法可以让表单在输入时提交,即使表单中的所有字段都没有焦点?我应该以某种方式关注表单本身吗?

表格:

<form (ngSubmit)="onSubmit()" [formGroup]="form">
    <mat-radio-group [formControl]="control" name="test">
        <mat-radio-button *ngFor="let option of options" [value]="option.key">
        {{option.value}}
        </mat-radio-button>
    </mat-radio-group>
    <button>Submit</button>
</form>

Stackblitz: https://stackblitz.com/edit/angular-arcwjv?file=src/app/app.component.html

【问题讨论】:

  • 尝试在按钮上添加type=submit
  • 在我使用 Kendo 网格进行内联编辑的特定用例中,我发现我的 Kendo 网格缺少 [navigable]=true 标志,这会阻止输入键用于表单提交。希望这对其他人有帮助。

标签: angular forms


【解决方案1】:

始终指定元素的类型属性。不同的浏览器可能对元素使用不同的默认类型。

submit = 该按钮是一个提交按钮(提交表单数据)

<button type="submit" >Submit</button>

【讨论】:

  • 添加 type=submit 并没有什么不同。我很确定问题是表格没有集中。如果我单击一个单选按钮,然后按 Enter,它确实有效。
  • 你能创建一个stackbliz吗?所以我可以更好地帮助你
  • 这救了我的命!
  • 谢谢,我创建了一个 Stackblitz stackblitz.com/edit/angular-arcwjv?file=src/app/…
【解决方案2】:

将类型submit 添加到按钮。

<button type="submit" >Submit</button>

【讨论】:

  • 这并不能解决任何问题。另外我为什么要使用提交事件?我已经在使用 ngSubmit 事件。这也不是问题
  • (submit)="onSubmit()" 不需要提交表单。 angular.io/guide/forms
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
  • 1970-01-01
  • 2022-01-15
  • 2017-03-13
  • 1970-01-01
  • 2016-05-04
  • 1970-01-01
相关资源
最近更新 更多