Gau*_* T. 0 html javascript input typescript angular
<input #input (input)="input.value=$event.target.value.toUpperCase()">
Run Code Online (Sandbox Code Playgroud)
<input oninput="this.value = this.value.toUpperCase()">
Run Code Online (Sandbox Code Playgroud)
但不是我的用例,因为我不想复制我的 html 标签,因为我在这个领域有很多配置,这会导致重复的代码,我只能修改一个输入标签而不是另一个,并引入一个错误。 ...因此,我不想使用这个:
<input *ngIf="uppercase" oninput="this.value = this.value.toUpperCase()">
<input *ngIf="!uppercase">
Run Code Online (Sandbox Code Playgroud)
我会使用这样的东西(但这当然不起作用):
<input oninput="if ({{this.uppercase}}) { this.value = this.value.toUpperCase();} ">
Run Code Online (Sandbox Code Playgroud)
经过多次测试,解决方案非常简单:
此解决方案不起作用,因为验证是在更改之前触发的:
(input)="formBlock.forceUppercase ? input.value=$event.target.value.toUpperCase() : input.value=$event.target.value"
Run Code Online (Sandbox Code Playgroud)
但这正在工作(在验证之前应用了更改):
html :
(input)="forceUppercaseConditionally(formControl.formControlName, $event);"
Run Code Online (Sandbox Code Playgroud)
:
(input)="formBlock.forceUppercase ? input.value=$event.target.value.toUpperCase() : input.value=$event.target.value"
Run Code Online (Sandbox Code Playgroud)