В данном материале предлагаю вашему вниманию скрипт под 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;