2017-09-18 3 views
0

Ich möchte Großbuchstaben für Eingabefeld ohne ngModel verwenden, auch ich benutze Form Builder. Jeder Weg, um alle Werte von Form in Großbuchstaben umzuwandeln.UpperCasePipe für Eingabe in Angular 4

<form [formGroup]="addTrackForm" (ngSubmit)="addTrack(addTrackForm.value)"> 
    <input type="text" formControlName="name" /> 
    <input type="text" formControlName="adminAdamGroup" class="inputTxt" /> 
    <button type="submit" class="btn btn-primary btn-sm" [disabled]="!addTrackForm.valid">Add</button> 
</form> 

Antwort

0

Sie müssen nur den Wert des Steuerelements festlegen, ohne das Änderungsereignis zu senden. Looping auf alle Werte der Form kann wie folgt erfolgen:

this.form.valueChanges.do(values=>{ 
    Object.keys(values).forEach(k=>{ 
    this.form.get(k).setValue(value.toUpperCase(),{emitEvent:false}); 
    }); 
}).subscribe(); 

Sie können create a component or directive that implements ControlValueAccessor auch und die Transformation behandelt.

1

Lösung. Sie können den Eingang wie folgt verwenden

(input)="orderForm.patchValue({nome: $event.target.value.toUpperCase()})"