【问题标题】:Is there a way to accept only alphabets as input and not numbers? If numbers are given it should show a validation error as it takes only alphabets有没有办法只接受字母而不是数字?如果给出数字,它应该显示验证错误,因为它只需要字母
【发布时间】:2020-02-29 10:28:06
【问题描述】:

我正在创建一个表单,我在其中提供某些字段。 现在,一个文本类型的输入字段。

我尝试过验证 " required " 但这不是我要寻找的。如果用户提供一个数字作为输入,它应该验证它只需要字母。

<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>

你能帮我在旅途中如何在文本字段中输入并验证是否给出了数字

【问题讨论】:

标签: javascript php jquery html validation


【解决方案1】:

您可以使用这样的模式进行验证。

<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>

【讨论】:

    【解决方案2】:

    使用模式

    <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>
    

    pattern 属性指定一个正则表达式,在提交表单时检查元素的值。

    【讨论】:

    • 谢谢。我实际上在寻找相同但有点不同的东西。就像,我想在输入时显示验证,或者当我们进入下一个字段时,它应该提醒应该只给出字母而不是数字。
    【解决方案3】:

    试试下面的 sn-p:

    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;
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2022-11-02
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2011-04-17
      • 1970-01-01
      相关资源
      最近更新 更多