【发布时间】:2018-07-29 18:52:21
【问题描述】:
在我的页面中,我有一个简单的表单组。我必须在其中为名称编写自定义验证。
this.searchForm = this._formBuilder.group({
profileName: new FormControl('', Validators.compose([Validators.required])),
TypeId: new FormControl('', Validators.compose([Validators.required])),
tempRange: new FormControl('', Validators.compose([Validators.required])),
region: new FormControl('', Validators.compose([Validators.required])),
quarter1: new FormControl('', Validators.compose([Validators.required])),
quarter2: new FormControl('', Validators.compose([Validators.required]))
}, {
validator: this.customValidator// your validation method
});
我已将自定义验证放入方法 this.customValidator 中。
我的一项验证是检查 profileName 的重复检查。
我在从验证方法获取同一类型脚本类中的其他方法(验证逻辑所在的位置)时遇到问题,当我调用该方法(不是静态或函数)时,我收到错误消息(按 f12)
ERROR 错误:未捕获(承诺):TypeError: this.validateProfileName 不是函数...'。
有什么方法可以调用特定的方法,或者我需要在它自己的验证方法中实现所有逻辑。
另外,如何以与必填字段验证错误消息相同的样式显示验证错误消息。
我的验证方法
customValidator(control: AbstractControl) {
debugger;
let profileName = control.get('profileName').value;
let retgionCode = control.get('regionCode').value;
let forcastType = control.get('forecastTypeId');
var status = this.validateProfileName(retgionCode, profileName);
if (!status)
control.get("profileName").setErrors({ 'invalidProfileName': true });
return null;
}
【问题讨论】:
-
如果您不向我们展示您的代码,没有人会知道您的代码中的错误是什么;)
-
我已经添加了方法和确切的错误。谢谢
标签: angular angular2-forms angular4-forms