【问题标题】:jQuery validation: errors are not displayed [duplicate]jQuery验证:不显示错误[重复]
【发布时间】:2017-12-26 06:23:19
【问题描述】:

我在我的代码中添加了 jQuery Validation,并且每个字段的自定义消息都没有显示。我只是在验证字段上看到一个红色框和一个默认弹出窗口:“这是一个必填字段”。

请看代码:

<script src="~/Scripts/jquery-1.10.2.intellisense.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-1.10.2.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.validate.js"></script>

    <script type="text/javascript">
        $(document).ready(function () {
            $("#form").validate({
                rules: {
                    firstname: {
                        required: true
                    },
                    lastname: {
                        required: true
                    },
                    email: {
                        required: true
                    },
                    message: {
                        required: true
                    }
                },
                messages: {
                    firstname: "Enter your first name",

                    lastname: "Enter your last name",

                    email: "Enter your email",

                    message: "Enter the message"

                },
            });
        });


    </script>


<form id="form" action="" method="post">
    <fieldset>
        <label for="firstname">First name: </label>  
        <input type="text" name="firstname" id="firstname" required /> <br />
    </fieldset>
    <fieldset>
        <label for="lastname">Last name: </label>
        <input type="text" name="lastname" id="lastname" required /> <br />
    </fieldset>
    <fieldset>
        <label for="email">Email: </label>
        <input type="email" name="email" id="email" required /> <br />
    </fieldset>
    <fieldset>
        <label for="message">Message: </label>
        <textarea name="message" id="message" required ></textarea>
    </fieldset>
    <input type="submit" id="submit" value="Submit"/>
</form>

感谢您的帮助。

【问题讨论】:

  • 为什么你添加了jqueryjquery-validate的多个引用?修复此问题后重试。
  • 谢谢,我删除了jquery的多个引用,但我得到了相同的结果:(
  • 您描述的“默认弹出窗口”听起来像是根据浏览器进行的 HTML5 验证,因为此插件与弹出窗口无关。您没有正确包含 jQuery 文件。
  • jQuery 验证文件是否实际位于您指定的路径中? ~/Scripts/jquery.validate.js

标签: javascript jquery jquery-validate


【解决方案1】:

多次包含 js 文件是个问题。另外,请确保您对 validate.js 有正确的引用。

.mr15{
  margin-right:15px;
}

label.error{
color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.js"></script>

    <script type="text/javascript">
        $(document).ready(function () {
            $("#form").validate({
                rules: {
                    firstname: {
                        required: true
                    },
                    lastname: {
                        required: true
                    },
                    email: {
                        required: true
                    },
                    message: {
                        required: true
                    }
                },
                messages: {
                    firstname: "Enter your first name",

                    lastname: "Enter your last name",

                    email: "Enter your email",

                    message: "Enter the message"

                },
            });
        });


    </script>


<form id="form" action="" method="post">
    <fieldset>
        <label for="firstname">First name: </label>  
        <input type="text" name="firstname" id="firstname" class="mr15" required /> <br />
    </fieldset>
    <fieldset>
        <label for="lastname">Last name: </label>
        <input type="text" name="lastname" id="lastname" class="mr15" required /> <br />
    </fieldset>
    <fieldset>
        <label for="email" >Email: </label>
        <input type="email" name="email" id="email" class="mr15" required /> <br />
    </fieldset>
    <fieldset>
        <label for="message">Message: </label>
        <textarea name="message" id="message" class="mr15" required ></textarea>
    </fieldset>
    <input type="submit" id="submit" value="Submit"/>
</form>

【讨论】:

  • 感谢您的帮助,当我运行代码 sn-p 时,我在这里看到了自定义消息,但在我的应用程序中,即使添加了建议的代码,自定义消息也不会显示:(
  • @AMY 如果未显示错误消息,则可能是验证器的问题。您是否看到任何控制台错误?
  • 是的,我在 IE 中运行代码时看到以下错误。
  • 0x800a01b6 - JavaScript 运行时错误:对象不支持属性或方法“验证”
  • @Sparky,感谢您的帮助。我查看了此链接blog.falafel.com/three-steps-use-jquery-ui-asp-net-mvc-5,并通过将 jQuery 包添加到布局文件的顶部找到了解决方案,现在显示自定义错误:)
猜你喜欢
  • 1970-01-01
  • 2016-02-18
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多