如果我在第一个字段下拉列表中选择了第三个下拉值,则启用第二个字段。 因此,现在,如果我通过选择下拉列表的第3个值来赋值,并给第2个字段赋值,则会被采用。 现在,我去编辑功能并更改其他值,因为第二个字段被禁用,我的屁股为null或未定义。 因此,现在我希望第二个字段具有其值,如果第一字段在编辑模式下未更改
HTML:
TS:
private FormInit() {
//Add
if (!this.Details) {
this.detailsForm = this.FB.group({
Type: ['', Validators.required],
ID: [{ value: 0, disabled: true }],
});
} else {
// edit
this.detailsForm = this.FB.group({
Type: [this.Details.data.Type, Validators.required],
SourceID: [{ value: this.Details.data.ID, disabled: true }],
});
if (this.Details.mode == 'readOnly') {
this.detailsForm.disable();
}
}
}
添加和编辑功能:
public save() {
let addParams = this.detailsForm.value;
addParams.Type = addParams.Type ? addParams.Type: 0;
this.Service.add(addParams).subscribe(res => {
console.log(res);
this.successMessagePopUp(res);
})
}
public update() {
let updateParams = this.detailsForm.value;
this.Service.update(updateParams).subscribe(res => {
this.successMessagePopUp(res)
})
}
希望以一种方式解决此问题,如果选择了第3个下拉值,那么在编辑模式下,如果选择了其他值,我们可以保持第2个字段处于启用状态并禁用oly吗?
答案 0 :(得分:1)
通常 disabled
值将在angular
中显示为未定义。
PS:我想根据您的要求:
private FormInit() {
if (!this.Details) {
this.detailsForm = this.FB.group({
Type: ['', Validators.required],
ID: [{ value: 0, disabled: true }],
});
} else {
// edit
this.detailsForm = this.FB.group({
Type: [this.Details.data.Type, Validators.required],
ID: [{ value: this.Details.data.ID }],
});
if (this.Details.data.Type == 3)
{
this.detailsForm.get("ID").enable();
}
else
{
this.detailsForm.get("ID").disable();
}
if (this.Details.mode == 'readOnly') {
this.detailsForm.disable();
}
}
}