在Angular 2中,如何提交输入类型=" text"按Enter键时的值?

时间:2016-07-29 12:31:16

标签: angular

我在Angular 2应用中构建了一个搜索框,试图在点击时输入值'输入' (表单不包括按钮)。

模板

<input type="text" id="search" class="form-control search-input" name="search" placeholder="Search..." [(ngModel)]="query" (ngSubmit)="this.onSubmit(query)">

使用简单的onSubmit函数进行测试......

export class HeaderComponent implements OnInit {
  constructor() {}

  onSubmit(value: string): void {
    alert('Submitted value: ' + value);
  }
}

ngSubmit似乎在这种情况下无效。那么&#39; Angular 2方式&#39;是什么?解决这个问题? (最好没有像隐藏按钮这样的黑客)

4 个答案:

答案 0 :(得分:97)

REGEXP '^\\P{Han}*$' 在输入标记

中添加此内容

答案 1 :(得分:2)

您可以将此文本框放在表单标记内,并在表单上设置ngSubmit事件,即

<form (ngSubmit)="YouMethod()">
    <input type="text" class="form-control input-lg" />
</form>

答案 2 :(得分:1)

在普通HTML中,按Enter键时需要<button type="submit" ></button><input type="submit" />提交表单。这些元素可以被css隐藏,但必须存在于表单中。 ng-submit应该绑定到正常的onsubmit事件,并且它具有相同的触发条件。

同样来自您发布的代码,您没有表单元素,只有输入字段,ng-submit指令仅适用于表单,因为输入元素没有onsubmit JS事件。

答案 3 :(得分:0)

为了完整起见,这个解决方案也适用于我:

<form (keydown)="keyDownFunction($event)"><input type="text" /></form>