当前位置: 首页 > 面试题库 >

如何使用jQuery在每个文本框下方显示验证消息?

尹正奇
2023-03-14
问题内容

我正在尝试制作一个登录表单,其中将电子邮件地址和密码作为文本框。我已经在电子邮件地址部分进行了验证,以便它应该具有正确的电子邮件地址,并且在空白处检查电子邮件地址和密码文本框。

到目前为止,我已经添加了一个警告框,说明Invalid电子邮件地址和密码文本框是否为空。取而代之的是,我想在每个文本框的下方显示一个简单的消息,如果没有输入,请输入您的电子邮件地址或密码?

这可以在我当前的html表单中执行吗?

更新:-

<body>

    <div id="login">

        <h2>
            <span class="fontawesome-lock"></span>Sign In
        </h2>

        <form action="login" method="POST">
            <fieldset>
                <p>
                    <label for="email">E-mail address</label>
                </p>
                <p>
                    <input type="email" id="email" name="email">
                </p>
                <p>
                    <label for="password">Password</label>
                </p>
                <p>
                    <input type="password" name="password" id="password">
                </p>
                <p>
                    <input type="submit" value="Sign In">
                </p>

            </fieldset>

        </form>

    </div>
    <!-- end login -->

</body>

而我的js-

<script>
    $(document).ready(function() {
        $('form').on('submit', function (e) {
            e.preventDefault();

            if (!$('#email').val()) {
                if ($("#email").parent().next(".validation").length == 0) // only add if not added
                {
                    $("#email").parent().after("<div class='validation' style='color:red;margin-bottom: 20px;'>Please enter email address</div>");
                }
            } else {
                $("#email").parent().next(".validation").remove(); // remove it
            }
            if (!$('#password').val()) {
                if ($("#password").parent().next(".validation").length == 0) // only add if not added
                {
                    $("#password").parent().after("<div class='validation' style='color:red;margin-bottom: 20px;'>Please enter password</div>");

                }
            } else {
                $("#password").parent().next(".validation").remove(); // remove it
            }
        }); 
    });

</script>

我正在使用JSP和Servlet,因此,一旦我单击“登录”按钮,它就将我带到另一个包含有效电子邮件和密码的页面,但是现在,单击“具有有效电子邮件和密码的登录”按钮后,什么也没有发生。

有什么想法可能是错的吗?


问题答案:

您可以将静态元素放在字段之后并显示它们,也可以动态注入验证消息。请参阅以下示例,了解如何动态注入。

此示例还遵循将焦点设置为空白字段的最佳做法,因此用户可以轻松地解决问题。

请注意,您可以轻松地将其通用化以与任何标签和字段一起使用(无论如何对于必填字段),而不是我的示例专门为每个验证编写代码。

编码:

$('form').on('submit', function (e) {
    var focusSet = false;
    if (!$('#email').val()) {
        if ($("#email").parent().next(".validation").length == 0) // only add if not added
        {
            $("#email").parent().after("<div class='validation' style='color:red;margin-bottom: 20px;'>Please enter email address</div>");
        }
        e.preventDefault(); // prevent form from POST to server
        $('#email').focus();
        focusSet = true;
    } else {
        $("#email").parent().next(".validation").remove(); // remove it
    }
    if (!$('#password').val()) {
        if ($("#password").parent().next(".validation").length == 0) // only add if not added
        {
            $("#password").parent().after("<div class='validation' style='color:red;margin-bottom: 20px;'>Please enter password</div>");
        }
        e.preventDefault(); // prevent form from POST to server
        if (!focusSet) {
            $("#password").focus();
        }
    } else {
        $("#password").parent().next(".validation").remove(); // remove it
    }
});

CSS:

    .validation
    {
      color: red;
      margin-bottom: 20px;
    }


 类似资料:
  • 问题内容: 如何显示jQuery插件的单独错误消息和摘要? 我实际上发现了一个类似的问题,但是它只是引用了一些我可以使用的钩子,但是我不确定从哪里开始。 我得到了显示单个错误消息的部分,但是我需要在提交时在警报框中显示摘要,并且可以在此处找到插件。 刚刚了解了如何,感谢David的代码,以及我的后续问题-警报框为“名字:请输入一个有效的名字”。 代码如下: 问题答案: 正如链接的问题所述,只要显示

  • 因此,我有一个包含许多的表单,它们都需要填写。我研究了文本框验证,但我只能找到验证单个文本框的说明。下面是单数文本框验证的代码。我只是想知道是否有可能同时打击所有的人,而不是每个人都这样。任何帮助都将不胜感激!

  • 我想使用jQuery验证插件验证输入(出生日期),但它必须是“dd/mm/yyyy”格式,并且在年份日期超过2002年时不进行验证。 因此,该日期在格式为“dd/mm/yyyy”且年份超过“2002”时有效

  • 我试图让我的javascript验证电话号码输入,并在用户输入信息不正确时显示消息。我还设置了另外两个输入,所以我复制了其中一个,并用phoneNumber替换了名称,但没有结果。没有HTML的替代品,请它是我必须使用我的评估。 这里我只包含了电话号码输入的代码。http://jsfiddle.net/29ZNV/ 超文本标记语言 JAVASCRIPT

  • 在我的应用程序中,其中一个页面有更多的下拉框和文本框,我正在尝试验证每个文本框和下拉框的标题,但我无法构造适当的xpath来进行断言。 下面是文本框和下拉框的HTML代码。 文本框和下拉列表的标题如下: 请选择信用类型: 你需要多少? 贷款期限 雇用类型 我无法构造xpath来定位正确的webelement来断言标题,因为所有文本框的类名都是一样的。 找到元素的正确方法是什么?请推荐合适的XPat