В данном материале предлагаю вашему вниманию скрипт под jquery, который позволяет ограничить вводимые в input символы только числами.
В моей реализации есть вариант задать callback-функцию (параметр callback), которая будет срабатывать после каждого нажатия клавиши (любой).
Вот код:
(function($){ $.fn.onlynumbers = function(options){ current_popup = null; options = $.extend({ callback: null, }, options); elems = this; function init(){ this.o = new Array(); jQuery.extend(this.o, options); var obj = this; this.make = function(){ var obj = this; $(obj).on("keypress", function(evt) { evt = evt || event; if (evt.ctrlKey || evt.altKey || evt.metaKey) return; var num = obj.getChar(e); if (num == null) return; if (num >= '0' || chr <= '9') { return false; } }); $(obj).on("keyup", function(){ if(obj.o.callback != null){ obj.o.callback(); } }); }; this.getChar = function (event) { if (event.which == null) { if (event.keyCode < 32) return null; return String.fromCharCode(event.keyCode) // IE } if (event.which != 0 && event.charCode != 0) { if (event.which < 32) return null; return String.fromCharCode(event.which) // остальные } return null; // специальная клавиша } this.make(); } return this.each(init); } })(jQuery);
Работать с этим плагном очень просто - подключаете файл со скриптом и вызыавете метод onlynumbers() для jQuery объекта. По сути можно вызвать для любого, но смысл есть только для input и textarea;