Angular - 在输入字段中转换为小写

Aym*_*ari 3 typescript angular

我有一个电子邮件输入,我希望当我在输入中写入大写字母时,它会将它们转换为小写字母

我尝试了这个方法,但它显示了一个错误

错误范围错误:超出最大调用堆栈大小

<input type="text" formControlName="mail" (ngModelChange)="toLowerCase($event)">

private toLowerCase(event): void {
    this.cmOrganizationForm.get('mail').setValue(event.toLowerCase());
}
Run Code Online (Sandbox Code Playgroud)

xyz*_*xyz 8

ngModelChange当您使用响应式表单时,请不要使用事件。


监听valueChanges表单控件的订阅并设置订阅下的值,设置emitEvent为 false,这样就不会valueChanges再次发出事件。

试试这个,这不会emit再次发生 valueChanges 事件

private ngOnInit(): {
  this.cmOrganizationForm.get('mail').valueChanges.subscribe((event) => {
     this.cmOrganizationForm.get('mail').setValue(event.toLowerCase(), {emitEvent: false});
  })
}
Run Code Online (Sandbox Code Playgroud)