Javascript 如何在angular 2 Typescript中为FormBuilder对象设置值
我使用反应式表单验证(模型驱动验证),但无法在下拉更改时设置表单对象的值 这是我的FormgroupJavascript 如何在angular 2 Typescript中为FormBuilder对象设置值,javascript,html,angular,typescript,Javascript,Html,Angular,Typescript,我使用反应式表单验证(模型驱动验证),但无法在下拉更改时设置表单对象的值 这是我的Formgroup studentModel:StudenModel AMform: FormGroup; Name = new FormControl("", Validators.required); Address = new FormControl("", Validators.maxLength(16)); constructor(fb: FormBuilder){ this.AMform
studentModel:StudenModel
AMform: FormGroup;
Name = new FormControl("", Validators.required);
Address = new FormControl("", Validators.maxLength(16));
constructor(fb: FormBuilder){
this.AMform = fb.group({
"Name": this.Code,
"Address": this.Abbrev,
});
}
onAccntChange(event: Event) {
// set the value from Class Model
//// this.studentModel
// how to set this.studentModel value to form
}
这是我的html页面
<form [formGroup]="AMform" (ngSubmit)="submit()">
<select (change)="onAccntChange($event)" class="form-control" [disabled]="ddlActivity" formControlName="AccountManagerID">
<option value="0">Select</option>
<option *ngFor="let item of allStudent" value={{item.StudentID}}>
{{item.Name}}
</option>
</select>
<div class="col-sm-9">
<input type="text" class="form-control" formControlName="Name">
</div>
<div [hidden]="Name.valid || Code.pristine" class="error"> Name is required </div>
<div class="col-sm-9">
<input type="text" class="form-control" formControlName="Address">
</div>
<div [hidden]="Address.valid || Address.pristine" class="error">Address is required </div>
<button type="submit" class="btn btn-warning "><i class="fa fa-check-square"></i> Save</button>
</form>
挑选
{{item.Name}
名称是必需的
地址是必需的
拯救
更改时,我需要设置formcontrol值您可以通过调用
formcontrol
对象上的setValue
方法来实现:
(<FormControl> this.AMform.controls['Name']).setValue("new value");
使用FormGroup对象的patchValue方法
onAccntChange(event: Event) {
this.AMform.patchValue({yourControl: studentModelValue})
}
使用
setValue
您需要指定all表单控件:
this.AMform.setValue({'Name':'val1', 'Address':'val2'})
使用patchValue
您可以指定所需的:
this.AMform.patchValue({'Name':'val1'})
你可以多读一点。你能不能请这个oneName=newformcontrol({value:'',disabled:true},[Validators.required,Validators.maxLength(10)];我想在更改时禁用false,请告诉我解决方案…您也可以使用“as”
const fc=this.AMform.controls['Name']作为FormControl;fc.设置值(“新值”)代码>这是否回答了您的问题?
this.AMform.patchValue({'Name':'val1'})