当前位置: 首页 > 知识库问答 >
问题:

如何通过事件对象我输入字段的名字吗

那宏大
2023-03-14

我不确定这样做是否合乎逻辑。这是我输入框的html代码。

<input type="text" id="name" #name="ngForm" [ngFormControl]="userProfileForm.controls['name']"  
             [(ngModel)]="loggedUserInfo.name" (change)="firechange($event,'name')"
             />

这是我的火变函数

 firechange($event, field){
      if(this.userProfileForm.controls[field].valid){
       this._userService.updateUserProfile(this.loggedUserInfo);
       this._userService.loadUserData(); 
      }
 }

我只想在firechange函数中传递事件,而在fire change函数内部,我想从事件中获取输入字段名称,这样我就可以理解表单中的哪个输入字段触发了事件。预期的代码是这样的

[ngFormControl]="userProfileForm.controls['name']"  
                 [(ngModel)]="loggedUserInfo.name" (change)="firechange($event)"
                 />

firechange($event){
          if(this.userProfileForm.controls[$event.fieldname].valid){
           this._userService.updateUserProfile(this.loggedUserInfo);
           this._userService.loadUserData(); 
          }
 }

我的理想要求是,在一个表单中有许多表单字段,我甚至不想在每个单独的表单字段中编写firechange函数。有没有什么通用的方法可以在特定表单的每个输入字段值改变时调用该事件,而不用在每个输入字段上写它?

共有3个答案

仰雅昶
2023-03-14

如果你想从你的火焰变化函数中得到这个元素,你可以尝试这样的方法:

firechange(event){
          let theElement = event.target;
          // now theElement holds the html element which you can query for name, value and so on
 }

此外,如果您希望通过组件中的一条指令(而不必在每个输入字段上指定),指示组件在所有输入字段上应用firechange()逻辑,我建议您在Angular2中了解如何知道任何表单输入字段何时失去焦点。

我希望这有助于

慕容品
2023-03-14

如果< code>id与您传递的名称相同,您可以获得如下名称

firechange(event){
  if(this.userProfileForm.controls[$event.target.id].valid){
}
穆单鹗
2023-03-14

要获取元素的实际名称,可以执行以下操作:

firechange(event){
     var name = event.target.attributes.getNamedItem('ng-reflect-name').value;
     console.log('name')
}
 类似资料:
  • 我试图制作一个方法,获取封闭实例中的任何字段,对于一对2D坐标(其字段名以“X”结尾)的任何“X”组件具有整数值。 但我在编译器中得到的只是: 方法将这样使用: 我做错了什么?

  • 问题内容: 我在Java中有一个对象(基本上是VO),但不知道其类型。 我需要获取在该对象中不为null的值。 如何才能做到这一点? 问题答案: 你可以用来获取该类的所有声明的字段。你可以用来获取价值。 简而言之: 要了解有关反射的更多信息,请查看有关该主题的Sun教程。 就是说,这些字段不一定全部代表VO的属性。你希望确定以或开头的公共方法,然后调用它以获取真实属性值。 也就是说,可能会有更优雅

  • 问题内容: 在AngularJS中将焦点设置在输入字段上的“角度方法”是什么? 更具体的要求: 当一个模态被打开,在一组预定义的焦点这里面模态。 每次都可见(例如,通过单击某些按钮),将焦点对准它。 我试图达到第一个要求有,但只有当模态被打开的第一次,只有在特定的浏览器(如Firefox中这是行不通的)这个作品。 任何帮助将不胜感激。 问题答案: 打开模态后,将焦点放在此模态内的预定义上。 定义一

  • 问题内容: Jackson json注释中以下jax-b注释的等效方式是什么? 我需要生成json而不是xml,并且需要了解在jax-b中等效表示的常规jackson批注。 重命名字段。 使用getter代替字段。 如果json / xml元素名称是Java保留字(例如“ ”,“ ”,“ ”等),则这些功能尤其重要。 因此我们必须将POJO字段分别命名为“ new ”,“ _ public ”,“

  • 我使用属性创建了两个EditText。 这里我使用的是硬件键盘,所以当我在textField上执行空格键事件时,焦点控制直接从editText视图转移到屏幕的其他随机视图。在普通文本字段类型中,它将其作为另一个字符,这很好。 任何人都知道如何使用空间键事件来保持对同一领域的关注。

  • 我们的表有一个嵌套的映射角色,如下所示: 现在我要查找组123中在Department1中有角色的所有文档。如何基于嵌套映射的值字段进行筛选?类似于: 我知道如何通过嵌套对象键进行筛选,但无法找到通过“对象值”进行筛选。