Мне нужно ограничить текстовые поля, чтобы разрешать номера только по мере того, как данные поступают в базу данных, где задаются типы данных полей, я не хочу, чтобы люди подавали знаки "Е" для денежных значений.
Я знаю, что могу использовать:
input type=number and also pattern [0-9]
Но по большей части хороших инструментов проверки html IE не поддерживает их в старых браузерах, я знаю, что IE9 (и старше) не поддерживает номер, и я уверен, что шаблон имеет ограниченную поддержку. Неудивительно, что Chrome и Mozilla гораздо более широко используются.
В любом случае, я могу проверить его для работы во всех браузерах?
Это будет работать и в каменном веке.
(Не работает в сценарии ctrl+v
)
<input type='text' onkeypress='validate(event)' />
function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}