Есть ли способ принимать в качестве ввода только алфавиты, а не цифры? Если даны числа, это должно показать ошибку валидации, так как она занимает только алфавиты - PullRequest
3 голосов
/ 04 ноября 2019

Я создаю форму, где я даю определенные поля. На данный момент, поле ввода с типом текста.

Я пытался дать подтверждение "обязательно" , но это не то, что я ищу. Если пользователь вводит число в качестве входных данных, он должен подтвердить, что он принимает только буквы алфавита.

<form action="/action_page.php">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="Submit">
</form>

Можете ли вы помочь мне, как я могу сделать это на ходу при наборе текста в текстовом поле и проверить, если числоучитывая

Ответы [ 3 ]

5 голосов
/ 04 ноября 2019

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

<form action="/action_page.php">
  First name: <input type="text" pattern="[A-Za-z]" name="fname"><br>
  Last name: <input type="text" pattern="[A-Za-z]" name="lname"><br>
  <input type="submit" value="Submit">
</form>

, или проверка может быть выполнена Jquery. поля ввода не будут принимать никаких других входных данных, кроме алфавитов.

<!DOCTYPE html>

        <html lang="en">
            <head>
                <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
            </head>
            <body>
               First name <input type="text" pattern="[A-Za-z]" id="fname" name="fname"><br>
               Last name <input type="text" pattern="[A-Za-z]" id="lname" name="lname"><br>
                <script>
                    $( document ).ready(function() {
                        $( "#fname" ).keypress(function(e) {
                            var key = e.keyCode;
                            if (key >= 48 && key <= 57) {
                                e.preventDefault();
                            }
                        });
                        $( "#lname" ).keypress(function(e) {
                            var key = e.keyCode;
                             if (key >= 48 && key <= 57) {
                                e.preventDefault();
                            }
                         });
                    });
                </script>
            </body>
        </html>
1 голос
/ 04 ноября 2019

Использовать шаблон

<form action="/action_page.php">
  First name: <input type="text" pattern="[A-Za-z]" name="fname"><br>
  Last name: <input type="text" pattern="[A-Za-z]" name="lname"><br>
  <input type="submit" value="Submit">
</form>

Атрибут шаблона задает регулярное выражение, с которым проверяется значение элемента при отправке формы.

1 голос
/ 04 ноября 2019

Попробуйте приведенный ниже фрагмент:

if (!/^([^0-9]*)$/.test($(input).val())) {
  alert("This only accepts alphabets!");
}
else
{
  //submit
}

Идея состоит в том, чтобы использовать регулярное выражение для проверки входного значения, а затем просто предупредить об этом клиента.

Альтернативный способ - немедленно отключить числапри нажатии клавиши.

    $("input").keypress(function (e) {
    if (!/^([^0-9]*)$/.test(e.key)) {
        return false;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...