Как я могу предотвратить буквы внутри текстового элемента?

Мне нравится иметь вход с максимальной длиной 3.

Эти входные значения должны содержать только цифры без букв.

Отсылаем к этому сообщению: почему < input type = "number" MaxLength = "3" > не работает в Safari? вы можете видеть, что я не могу использовать <input type="numbers">

Итак, как я могу предотвратить буквы внутри текстового элемента ввода?

Ответ 1

Вы можете использовать jQuery.

$("#myField").keyup(function() {
    $("#myField").val(this.value.match(/[0-9]*/));
});

Ответ 2

<script>
function checkPattern(elem) {
  if(!elem.value.match('^' + elem.getAttribute('pattern') + '$')) {
    alert('The value must be 3 digits.');
  }
}   
</script>
<input maxlength=3 pattern=[0-9]{3} onchange=
   checkPattern(this)>

Измените обработку ошибок в соответствии с приложением. Идея заключается в использовании атрибута HTML5 pattern и резервного копирования с помощью простого кода JavaScript для браузеров, которые не поддерживают атрибут, но отключены JavaScript.