>>app.directive('smNumberFormat', ['$filter', function ($filter) { >> return { >> restrict: 'A', // only activate on element attribute >> require: '?ngModel', // get a hold of NgModelController >> priority: - 3, // apply this directive after the input type="number" is applied >> link: function (scope, element, attrs, ngModel) { >>>>
//source: http://docs.angularjs.org/guide/forms (function () { 'use strict'; var ctrl = false; var app = angular.module('sysMgrApp'); app.directive('smNumber', function () { return { link: function (scope, element, attrs, ngModel) { element.on('keydown', function (event) { //Set the default decimal places to 0, if accuracy is not specified var accuracy = parseInt(attrs.accuracy) || 0; if (isCombo(event)) { return true; } if (isNumericKeyCode(event.keyCode) || isNavigationKeycode(event.keyCode)) { return true; } if (accuracy > 0) { return isDecimal(event.keyCode); } return false; }); } }; }); function isNumericKeyCode(keyCode) { return (keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105); } function isDecimal(keyCode) { return (keyCode === 190 || keyCode === 110); } //function isComma(keyCode) { // return (keyCode === 188); //} function isCombo(event) { // c, v, x if (event.ctrlKey && (event.keyCode === 67 || event.keyCode === 86 || event.keyCode === 88)) { return true; } } function isNavigationKeycode(keyCode) { switch (keyCode) { case 8: //backspace case 35: //end case 36: //home case 37: //left case 38: //up case 39: //right case 40: //down case 45: //ins case 46: //del case 109: //subtract case 189: //dash case 9: //tab return true; default: return false; } } })();What is your angularjs version?