onlyNumbers-directive.js 796 Bytes
angular.module('focaDirectivas')
  .directive('onlyNumbers', function () {
    return {
      restrict: 'A',
      link: function (scope, elm, attrs, ctrl) {
        elm.on('keydown', function (event) {
          if (event.shiftKey) { event.preventDefault(); return false; }
          //console.log(event.which);
          if ([8, 13, 27, 37, 38, 39, 40].indexOf(event.which) > -1) {
            // backspace, enter, escape, arrows
            return true;
          } else if (
            event.which >= 48 && event.which <= 57 ||
            event.which >= 96 && event.which <= 105
          ) {
            // numbers 0 to 9 or numpad number
            return true;
          } else {
            event.preventDefault();
            return false;
          }
        });
      }
    }
  });