Angular:
http://angularjs.org/
HTML
<div ng-controller="MyCtrl">
<div ng-form="noteForm">
<textarea my-maxlength="15" ng-model="result"></textarea>
<p>{{15 - result.length}} chars remaining</p>
<button ng-disabled="!noteForm.$valid">Submit</button>
</div>
</div>
JavaScript
var app = angular.module('myApp',[]);
app.directive('myMaxlength', function() {
return {
require: 'ngModel',
link: function (scope, element, attrs, ngModelCtrl) {
var maxlength = Number(attrs.myMaxlength);
function fromUser(text) {
ngModelCtrl.$setValidity('unique', text.length <= maxlength);
return text;
}
ngModelCtrl.$parsers.push(fromUser);
}
};
});
function MyCtrl($scope) {
}