【发布时间】:2018-04-25 23:19:33
【问题描述】:
我正在尝试对我的一个输入创建自定义验证。一切都按预期工作,但仍然应用错误 css 类。我试过$setPristine()
和$setUntouched() 首先在输入上(不起作用),然后在表单上。完美的解决方案是如果我可以在 ng-change 中重置样式。
self.changeTransferNumber = function () {
if (validateRoutingNumber(self.bankTransferNumber)) {
self.bankInfoForm.bankTransferNumber.$error.validateTransferNumber = false;
self.bankInfoForm.$setPristine();
self.bankInfoForm.$setUntouched();
} else {
self.bankInfoForm.bankTransferNumber.$error.validateTransferNumber = true;
}
}
<form name="$ctrl.bankInfoForm" novalidate ng-submit="$ctrl.saveInfo($event)">
<input type="text" ng-model="$ctrl.bankTransferNumber" ng-disabled="$ctrl.disableTextEdit" name="bankTransferNumber" required ng-change ="$ctrl.changeTransferNumber()"/>
<div ng-messages="$ctrl.bankInfoForm.bankTransferNumber.$error" ng-show="$ctrl.bankInfoForm.bankTransferNumber.$dirty">
<div ng-message = "validateTransferNumber" >The transfer number is not correct</div>
</div>
</form>
【问题讨论】:
-
能否提供完整的html表单
-
您是否考虑编写验证指令而不是使用这些指令?只是一个报价
标签: angularjs angularjs-material