Скрипт не позволяет вводить с клавиатуры символы, отличные от указанных в специальном атрибуте "allowed".
Сначала создадим форму и текстовое поле, с которым предстоит работать скрипту:


<form name="myForm">
<input type="text" name="myEntry" allowed="0123456789.," id="inNum" >
</form>

В данной форме для поля ввода text обязательным является наличие атрибута allowed, так как непосредственно в нем указаны разрешенные для ввода в форму символы.

Далее внутри тегов script создаем функцию, которая будет обрабатывать каждый введеный символ на предмет соответствия его разрешенным символам:


// добавляем обработчики событий на загрузку формы и получение необходимых параметров
(function () {
	if (window.addEventListener) window.addEventListener("load",get_myNum,false);
	else if (window.attachEvent) window.attachEvent("onload",get_myNum);

	function get_myNum() {
		// здесь получаем элемент по его ID и далее добавляем к нему обработчики
		var inNum = document.getElementById("inNum");

		if (inNum.addEventListener)
		inNum.addEventListener("keypress",numFilter,false);
		else inNum.onkeypress = numFilter;
	}

	// функция проверяющая ввод с клавиатуры
	function numFilter(event) {
		var e = event || window.event;
		var code = e.charCode || e.keyCode;

		if (e.charCode == 0) return true;
		if (e.ctrlKey || e.altKey) return true;
		if (code < 32)  return true;

		var allowed = inNum.getAttribute("allowed");
		var cc = String.fromCharCode(code);

		if (allowed.indexOf(cc) != -1 ) {

			/* здесь добавляем функцию для работы с полем, в данном примере - это
				функция, которая отделяет пробелом разряды  и запятой целую и
				дробную части во введеном значении
			*/
			inNum.onchange = function () {

				var point = /./gi;
				var num = inNum.value;
				newstr = num.replace(point, ",");

				var outNum = num.split(",");

				outNum[0]=outNum[0].substr(0, outNum[0].length%3)+ outNum[0].substr(outNum[0].length%3).replace(/(\d{3})/g, " \$1");

				inNum.value = outNum.join(",");


				/* эта часть скрипта превращает полученную строку с пробелами опять
				   в число для возможного дальнейшего использования в расчетах:
				*/
				var remove = / /gi;
				newstr = inNum.value.replace(remove, "");

				/* здесь выведено числовое значение текстового поля
				   переменной myEntry, которое пригодится для  возможных
				   дальнейших расчетов в форме.
				*/
				var myEntry_value = parseFloat(newstr) + parseFloat("0."+outNum[1]);

			}

		} else {

			if (e.preventDefault) e.preventDefault();
			if (e.returnValue) e.returnValue = false;
			return false;

		}
	}

})();

Конечно данный скрипт нельзя считать 100%-панацеей от ввода неразрешенных значений, поскольку ctrl+c и ctrl+v не отключены. Основная задача скрипта - исключить ненамеренные опечатки, случайный ввод специальных символов и т.п. Замечания по работе скрипта и предложения пишите, пожалуйста, на freeden_codomaza@mail.ru

captcha

Советы по настройке онлайн-календаря под себя Советы по настройке онлайн-календаря
Что такое облачное хранилище и как им пользоваться? Что такое облачное хранилище и как им пользоваться?
Как выбрать пластины для теплообменника? Пластины для теплообменника
Изучение языка ECMAScript: основа современной веб-разработки История языка ECMAScript
Как добавить комментарий в HTML? HTML примеры
Apple позволит разработчикам распространять приложения напрямую с их сайтов Apple позволит разработчикам распространять приложения напрямую с их сайтов
jQuery 4.0 сокращает поддержку браузеров, удаляет API Новое в jQuery 4.0
Как продвинуть Telegram-канал: с нуля до результата Как продвинуть канал в Telegram с нуля?
Получить IT профессию с нуля: академия Eduson Получить IT профессию с нуля
Перспективы эволюции SEO: встречайте будущее продвижения в поисковых системах Будущее SEO-продвижения
Создание сайтов в Алматы: агентство site-promote.kz Разработка сайта компании
Антипкин Михаил Сергеевич о метавселенной, открывающей безграничные возможности для инноваций и экспериментов Антипкин Михаил Сергеевич о метавселенной
Сёрфинг с браузером FraudFox: исчерпывающее руководство Сёрфинг с браузером FraudFox
Где найти лицензионные ключи активации к ПО? Где найти лицензионные ключи активации к ПО?
Курсы веб дизайна: обучение онлайн Курсы веб дизайна: обучение онлайн
Как продлить срок службы бытовой техники? Как продлить срок службы бытовой техники?
Основы VPS/VDS: что нужно знать перед арендой? Основы VPS/VDS: что нужно знать перед арендой?
Откройте для себя азарт Mostbet KZ - ведущего онлайн-казино для геймеров Откройте для себя азарт Mostbet KZ - ведущего онлайн-казино для геймеров
Топ-10 игр для Android стоимостью менее $5 Топ-10 игр для Android стоимостью менее $5
Проверка авто в базе ГИБДД перед покупкой Проверка авто в базе ГИБДД перед покупкой