我有一个3字段表格 - 名字,姓氏,身份证号码 - 我想设置这样,以便用户必须在两个名字字段中输入数据或输入表格的ID号码才能生效“submittable”。
我的代码是
ngOnInit() {
this.person = this.fb.group({
'fname': [],
'lname': [],
'certID': []
},{
validator:(formgroup:FormGroup)=>{
return this.validateInput(formgroup);
}
}
);
}
validateInput(formgroup:FormGroup){
if(formgroup.controls["fname"].value && formgroup.controls["lname"].value || formgroup.controls["certID"].value){
console.log('OK');
return {validateInputData:true};
}
else {
console.log('Not OK');
return null;
}
}
虽然在加载表单/页面并且生成“失败”(“不正常”)时运行此验证,但提交按钮仍处于活动状态:
<button type="submit" class="btn btn-success"
[disabled]="submitPending || person.invalid">
Submit<span *ngIf="submitPending" class="glyphicon glyphicon-refresh glyphicon-refresh-animate"></span>
</button>
我哪里错了?
答案 0 :(得分:1)
您的退货声明是否会倒退?
当一切正常时返回null
,当它不正常时返回错误。
if((formgroup.controls["fname"].value && formgroup.controls["lname"].value)
|| formgroup.controls["certID"].value){
console.log('OK');
return null;
}
else {
console.log('Not OK');
return {validateInputData: true};
}
'validateInputData'属性将是错误集合中错误的名称。