Ответ
@ clyfe хорош, но этот плагин не работает с элементами HTML5 type=number
.Вот небольшой быстрый код jQuery, который допускает только целые числа:
$("input[type=number]").keypress(function(event) {
if (!event.charCode) return true;
ch = String.fromCharCode(event.charCode);
return (/[\d]/.test(ch));
});
, чтобы разрешить десятичные дроби или запятые, чтобы регулярное выражение выглядело больше, чем в плагине, например, https://github.com/ruoso/jquery-regex-mask-plugin/blob/master/regex-mask-plugin.js#L8:
/^((\d{1,3}(\,\d{3})*(((\,\d{0,2}))|((\.\d*)?)))|(\d+(\.\d*)?))$/
(Обратите внимание, что разные локали имеют разные соглашения для десятичных и запятых, поэтому, вероятно, безопаснее просто разрешить цифры: -)
Обратите внимание, что это обходной путь для ошибок Chrome, упомянутых здесь: