Angular 2,数据验证和输入掩码的困难
发布时间:2020-12-17 18:05:10 所属栏目:安全 来源:网络整理
导读:我已经按照 https://auth0.com/blog/angular-2-series-part-5-forms-and-custom-validation/实现了表单验证 input class="form-control" type="text" name="phone" autocomplete="off" placeholder="(XXX)-XXX-XXXX" mask="" [disabled]="disabled" [(ngMode
我已经按照
https://auth0.com/blog/angular-2-series-part-5-forms-and-custom-validation/实现了表单验证
<input class="form-control" type="text" name="phone" autocomplete="off" placeholder="(XXX)-XXX-XXXX" mask="" [disabled]="disabled" [(ngModel)]="candidate.phone" ngControl="phone"/> … … static phone(control: Control): ValidationResult { let URL_REGEXP = /^(d{3})-d{3}-d{4}$/i; if (control.value && (control.value.length <= 5 || !URL_REGEXP.test(control.value))) { return {"phone": true}; } return null; } 加上这个元素我已经实现了输入掩码目录:http://pastebin.com/wRzHSsVy 出现以下问题:输入电话号码时,验证首先执行,然后输入掩码目录.因此验证器检查的数据和输入掩码目录格式化的数据不同.例如,验证器上的电话号码是(888)-888-88882,掩码将数字转换为以下格式(888)-888-8888,但验证器已经工作并在掩码激活之前指出了错误. 解决方法
我有一个非常类似的问题,也有一个电话掩码/验证器.我最初的想法是在我的掩码中调用“this.control.valueAccessor.writeValue(…)”后以某种方式重新调用验证.
我的尝试是添加: this.control.control.updateValueAndValidity( { onlySelf: true,emitEvent: false }); 这似乎再次触发表格验证,但提交给验证器的值仍然是不正确的(预掩码)值. 但是,我没有在输入中使用[(ngModel)],因此您可能会使用像this post suggests这样的东西 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |