Если вы хотите разрешить пользователям вводить только числовое значение в поле input HTML, вы можете создать регулярное выражение и проверять входное значение на соответствие с ним с помощью метода test().

Давайте посмотрим следующий пример, который применяет красный контур к текстовому полю ввода, если введенное значение не является целым или дробным числом, в противном случае применяет зеленый контур:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Allow Only Numeric Input in HTML Text Input Field</title>
<style>
    .success{
        outline: 2px solid green;
    }
    .error{
        outline: 2px solid red;
    }
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
    // Определяем регулярное выражение
    var regex = /^\d*[.]?\d*$/;
    
    $("#myInput").on("input", function(){
        // Получаем входящее значение
        var inputVal = $(this).val();
        
        // Проверяем входящее значение на соответствие регулярному выражению
        if(regex.test(inputVal)){
            $(this).removeClass("error").addClass("success");
        } else{
            $(this).removeClass("success").addClass("error");
        }
    });
});
</script>
</head>
<body>
    <input type="text" id="myInput">
    <p><strong>Note:</strong> This HTML text input only allow numeric keystrokes and decimal ('.')</p>
</body>
</html>

Обратите внимание, что событие ввода запускается при вводе с клавиатуры, перетаскивании мышью, автозаполнении и даже копировании и вставке. Но он не сработает, если вы вставите ту же строку или выберите и повторно введите тот же символ внутри input.

Если вы хотите разрешить ввод текста HTML только числовыми символами (0-9), используйте регулярное выражение /^\d*$/. В приведенном выше примере, если вы также хотите разрешить отрицательные значения, вы можете использовать регулярное выражение /^-?\d*[.]?\d*$/.

Читайте также

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.