提交表单组后我得到的值是
{
"name": "Sunil",
"age": "23"
}
我想要的是{
"name": "Sunil",
"age": 23
}
我的.ts文件中的表单组如下所示
myForm : FormGroup;
this.myForm = this._formbuilder.group({
name: [''],
age: [null]
});
提交表单组后我得到的值是
{
"name": "Sunil",
"age": "23"
}
我想要的是{
"name": "Sunil",
"age": 23
}
我的.ts文件中的表单组如下所示
myForm : FormGroup;
this.myForm = this._formbuilder.group({
name: [''],
age: [null]
});
在发送之前进行转换。
const value = { ...this.myForm.value, age: +this.myForm.value.age };
或者您可以使用类型为数字的输入。
<input type="number" formControlName="age">
input type="number"
已经验证它是一个数字。您仍然可以使用 NaN
或使用正则表达式模式创建自己的验证。 - user4676340type="number"
对我来说解决了这个问题。谢谢。 - bluefox这只是另一种由rxjs
驱动的解决方案,它可以在valueChanges
时将输入字符串值简单地转换为数字值。
const ageFormControl = this.myForm.get('age');
ageFormControl.valueChanges
.pipe(distinct())
.subscribe(value => ageFormControl.setValue(+value));
+
将其转换为数字。翻译后的句子为:使用 + 将其转换为数字,此处是获取年龄表单控件的值。
- Florianimport { Validators } from '@angular/forms'
。例如,如果你想要控件是必填的,你可以在构建表单时添加一个验证器数组name: ['', [Validators.required]]
。最好的方法是查看文档:https://angular.io/api/forms/Validators 尝试实现它,如果无法实现,请提出具体问题。 - Florian