javascript - Angular:在没有 jQuery 的情况下单击时模糊并清空表单字段?

标签 javascript jquery angular

我有一个表单输入,我想在单击按钮时模糊(散焦)并清空。

在 AngularJS 中,我在 Controller 中这样做:

angular.element('#search-input').val('');
angular.element('#search-input').blur();

在 Angular (4.4.4) 中,我的工作方式如下:

$('#search-input').val('');
$('#search-input').blur();

但我宁愿不使用 jQuery。在 Angular 中执行此操作的正确方法是什么?

这是整个组件:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'pb-header',
  templateUrl: './header.component.html'
})
export class HeaderComponent implements OnInit {

  private searchActive: boolean;

  constructor() {
    this.searchActive = false;
  }

  ngOnInit() {
  }

  toggleSearch = function () {
    if (this.searchActive) {
      this.searchActive = false;
      $('#search-input').val('');
      $('#search-input').blur();
    } else {
      this.searchActive = true;
    }

  };

}

最佳答案

您可以使用 NgFormreset 方法:

@ViewChild(NgForm)
public form:NgForm;


form.reset(<value>);

也不需要模糊,因为你点击按钮,它会获得焦点,如果没有,设置按钮的 tabindex 属性。

关于javascript - Angular:在没有 jQuery 的情况下单击时模糊并清空表单字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46942519/

相关文章:

angular - 重新加载页面后保持元素位置 - 拖放 cdk Angular 7

javascript - 在 AngularJS 指令中编译模板之前评估嵌入的文本

jquery - 如何在 Bootstrap 中将一列堆叠在其他两列之上?

javascript - 如何有重叠的药丸进度条

javascript - 让 JSON 在 IE 中工作

javascript - 如何使用 JQuery AJAX 创建基于 HTTP 状态代码的自定义消息?

javascript - 与作为输入传递给 Angular2 组件的对象进行交互

css - 多个 ngFor 内表

javascript - 如何使用 Javascript 呈现页面详细信息

javascript - city.statename.data 生成错误无法读取 Object.city 中未定义的属性 'data'