Client-side Validation should be simple and clean.
Don't let Client-side Validation dirty your controller.
Setup your Validation on config phase by using some rules (example)
And add Validation in your view only.
AngularJS > 1.2.0, 1.3.0-beta
http://huei90.github.io/angular-validation/
http://plnkr.co/edit/rjIIkX (Bootstrap framework)
MIT
Install with npm
npm install angular-validation
<script src="dist/angular-validation.js"></script>
<script src="dist/angular-validation-rule.js"></script>
angular.module('yourApp', ['validation']);
// including your validation rule
angular.module('yourApp', ['validation', 'validation.rule']);
<form name="Form">
<div class="row">
<div>
<label>Required</label>
<input type="text" name="required" ng-model="form.required" validator="required">
</div>
<div>
<label>Url</label>
<input type="text" name="url" ng-model="form.url" validator="required, url">
</div>
<button validation-submit="Form" ng-click="next()">Submit</button>
<button validation-reset="Form">Reset</button>
</div>
</form>
- Required
- Url
- Number
Anyone can give a PR
for this angular-validation for more built-in validation
To integrate this package with Bootstrap you should do the following.
Add the following LESS to your project
.ng-invalid.ng-dirty{
.has-error .form-control;
}
label.has-error.control-label {
.has-error .control-label;
}
Change the Error HTML to something like:
$validationProvider.setErrorHTML(function (msg) {
return "<label class=\"control-label has-error\">" + msg + "</label>";
});
You can add the bootstrap class .has-success
in a similar fashion.
See release
Thanks for all contributors