[英]How to catch pattern error in input field in AngularJS?
我建立了一个函数捕获错误,但它仅适用于标准HTML5验证,如果我使用ng-pattern则无法捕获错误:(怎么做?可能类似于if(error.login$invalid)
。
模板:
<input type="text" name="login" class="form-input"
ng-model="newUser.login"
ng-pattern="loginPattern"
required>
<div class="error"
ng-show="registrationForm.login.$invalid && registrationForm.login.$dirty">
{{getSigningError(registrationForm.login.$error)}}
</div>
控制器:
$scope.getSigningError = function(error){
if(angular.isDefined(error)){
if(error.required){
return "Field shouln`t be empty"
}
if(error.email){
return "Enter correct email"
}
if(error.login){
return "Enter correct login"
}
}
}
您可以在以下条件下使用error.pattern
,例如以下代码:
if(error.pattern){
return "Enter the correct format"
}
或者,您可以使用以下方法从模板端进行处理:
<span ng-if="myForm.login.$error.pattern">Invalid Pattern</span>
观察: ngPattern
和其他验证器一样,将为模式验证器ng-invalid-pattern
添加ng-invalid
和特定的类。 因此,如果您想为此类错误应用特定的样式,则可以使用此类。
.ng-invalid-pattern {
color: yellow;
}
如果没有传递错误,则可以像控制器一样进行检查:
if ($scope.formName.ControlName.$error.pattern) {}
通过模式验证时, $scope.formName.ControlName.$error.pattern
将是未定义的,否则将有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.