Реализация INPUT для ввода толко чисел

10 Февраля 2019

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

		
	
Файлы для скачивания
Возврат к списку