【发布时间】:2019-07-16 09:31:49
【问题描述】:
我有一个 FormGroup,我在其中定义了一个这样使用的 FormControl:
myForm: FormGroup = new FormGroup({
...
code: new FormControl('', Validators.pattern('^[0-9]*$')),
...
});
html:
<mat-form-field class="col">
<input formControlName="code" matInput>
</mat-form-field>
我希望这个输入是一个数字,但我无法正确转换它。我已经注册到表单控件的vauleChanges 事件并这样做了:
this.myForm.controls['code'].valueChanges.subscribe(d => {
if(this.myForm.controls['code'].valid){
this.myForm.get('code').setValue( +this.myForm.controls['code'].value);
}
})
我也尝试过使用 as number 或 <number> 转换值,但如果我打印表单的值,我会将其打印为字符串而不是数字。
此外,当我加载页面时,我的输入默认显示为 0:
但我没有在任何地方设置 0,我不希望它显示。
我尝试将输入类型指定为数字,但它显示了箭头,我不希望它们显示。
实现这一点的正确方法是什么?我很困惑。
【问题讨论】:
标签: forms angular7 angular-forms