我有一个表单,其中有两个字段(“ 自日期”和“ 至日期”)以及其他字段。 要求:
用户只能提供“ 自日期”
如果两个日期都指定为“ 自日期”,则不得大于“ 至日期”;如果给定的是<< em> To Date ,则用红色下划线。
如果仅提供“ 到日期”,则“ 自日期”将用红色下划线。
为此,我使用了来自frombuilder的“ SrchForm”:
myForm(){
this.srchGrp = this.SrchForm.group({
//other FormcontrolNames
from_date : '', // from_date controlname for 'From Date' field
to_date : '', // to_date controlname for 'To Date' field
}, {validator: this.fromNtoValidate('from_date', 'to_date')})
}
然后
fromNtoValidate(from_date, to_date){
return (group: FormGroup)=>{
let fromdate = group.controls['from_date'],
let todate = group.controls['to_date'],
if(formdate.value && todate.value){ // if both date provided
if (formdate.value > todate.value){
return todate.setErrors({'incorrect' : true});
}
}
if(!formdate.value && todate.value){ // **if Todate provided only
console.log("only Todate Given");
return fromdate.setErrors({'incorrect' : true});
}
}
}
**if Todate provided only
部分未能按预期方式打印Form Date
,但未在only Todate Given
字段上加红色标记。如果我尝试在todate
而不是'fromdate'上设置错误,那么它可以正常工作,但不能在fromdate
上工作。
请建议我在这里做什么,并标记我做错了什么地方?