下面是angularjs表单的表单验证策略:
ng-minlength : 指定你想要的输入文本的最小长度
ng-maxlength : 指定你想要的输入文本的最大长度
- ng-pattern : 指定要检查的 js 正则表达式以验证输入文本
- 如果你有一个 api 并且想在一个字段中获得一个唯一值而不是调整这个代码 sn -p
var app = angular.module('validationExample', []);
app.directive('ensureUnique', ['$http', function($http) {
return {
require: 'ngModel',
link: function(scope, ele, attrs, c) {
scope.$watch(attrs.ngModel, function() {
$http({
method: 'POST',
url: '/api/check/' + attrs.ensureUnique,
data: {'field': attrs.ensureUnique}
}).success(function(data, status, headers, cfg) {
c.$setValidity('unique', data.isUnique);
}).error(function(data, status, headers, cfg) {
c.$setValidity('unique', false);
});
});
}
}
}]);
var app = angular.module('validationExample', []);
app.directive('ensureUnique', ['$http', function($http) {
return {
require: 'ngModel',
link: function(scope, ele, attrs, c) {
scope.$watch(attrs.ngModel, function() {
$http({
method: 'POST',
url: '/api/check/' + attrs.ensureUnique,
data: {'field': attrs.ensureUnique}
}).success(function(data, status, headers, cfg) {
c.$setValidity('unique', data.isUnique);
}).error(function(data, status, headers, cfg) {
c.$setValidity('unique', false);
});
});
}
}
}]);
您可以通过这种方式访问表单字段
formName.inputFieldName.property
您可以检查用户是否触摸了表单
formName.inputFieldName.$pristine;
你可以检查表单是否被用户触摸到$pristine的对面
formName.inputFieldName.$dirty
您可以检查表单是否有效
formName.inputFieldName.$valid
$valid 的反义词
formName.inputFieldName.$invalid
你也可以使用这些类名来格式化你的表单
.ng-pristine {}
.ng-dirty {}
.ng-valid {}
.ng-invalid {}