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) {
}