【问题标题】:Validation does not work on click of submit : jquery单击提交时验证不起作用:jquery
【发布时间】:2017-02-20 11:52:57
【问题描述】:

我知道 JQuery,我正在尝试验证一个简单的表单。

这里的问题是验证在点击提交时不起作用。相反,我收到错误消息:

$(document).ready(function () {
    $("#form").validate({
        rules: {
            "name": {
                required: true,
                minlength: 5
            },
            "email": {
                required: false,
                email: true
            }
        },
        messages: {
            "name": {
                required: "Please, enter a name"
            },
            "email": {
                required: "Please, enter an email",
                email: "Email is invalid"
            }
        },
        submitHandler: function (form) { // for demo
            alert('valid form submitted'); // for demo
            return false; // for demo
        }
    });

});
<form id="form" method="post" action="#">
    <label for="name">Name</label>
    <input type="text" name="name" id="name" />
    <label for="email">Email</label>
    <input type="email" name="email" id="email" />
    <button type="submit">Submit</button>
</form>

这里是 jsfiddle:https://jsfiddle.net/aimanpanday87/hsdscmcj/

【问题讨论】:

  • 您的示例不包括验证插件。你确定你的页面中也有它吗?
  • 你添加了jquery验证插件文件吗?
  • @Aiman 请检查这个工作小提琴链接:jsfiddle.net/hsdscmcj/5
  • 您忘记包含插件:jsfiddle.net/hsdscmcj/6

标签: jquery jquery-validate


【解决方案1】:

在代码中显示下面的代码编辑只添加js链接

$(document).ready(function () {
    $("#form").validate({
        rules: {
            "name": {
                required: true,
                minlength: 5
            },
            "email": {
                required: false,
                email: true
            }
        },
        messages: {
            "name": {
                required: "Please, enter a name"
            },
            "email": {
                required: "Please, enter an email",
                email: "Email is invalid"
            }
        },
        submitHandler: function (form) { // for demo
            alert('valid form submitted'); // for demo
            return false; // for demo
        }
    });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.js"></script>
<form id="form" method="post" action="#">
    <label for="name">Name</label>
    <input type="text" name="name" id="name" />
    <label for="email">Email</label>
    <input type="email" name="email" id="email" />
    <button type="submit">Submit</button>
</form>

【讨论】:

  • @sujal-patel 感谢您的帮助。我添加了 js 链接及其工作。但问题是它在 js fiddle 上工作,而不是在 Dreamweaver 上工作。我已经写了确切的代码。但是js不行。
  • @sujal-patel 是的,它显示:未捕获的 ReferenceError:$ 未在 file:///D:/html/bent/New%20folder%20(2)/validation.js:1 中定义: 1(匿名)@validation.js:1
  • @sujal-patelUncaught 错误:Bootstrap 的 JavaScript 在 file:///D:/html/bent/New%20folder%20(2)/js/bootstrap.min.js:6 处需要 jQuery: 37(匿名)@ bootstrap.min.js:6
  • @sujal-patelnope 控制台在第一行显示错误:$(document).ready(function () { - 正在研究它
  • 这意味着 jquery 没有找到...我确定你添加了 jquery.js 文件
【解决方案2】:

请使您的代码如下所示或检查以下小提琴链接:

工作代码链接:https://jsfiddle.net/hsdscmcj/9/

            <form id="form" method="post" action="#">
               Name
                <input type="text" name="name" id="name" />
                Email
                <input type="email" name="email" id="email" />
                <button type="submit">Submit</button>
            </form>

            <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
            <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.15.0/jquery.validate.js"></script>
            <script>

            $(document).ready(function () {
                $("#form").validate({
                    rules: {
                        "name": {
                            required: true,
                            minlength: 5
                        },
                        "email": {
                            required: true,
                            email: true
                        }
                    },
                    messages: {
                        "name": {
                            required: "Please, enter a name"
                        },
                        "email": {
                            required: "Please, enter an email",
                            email: "Email is invalid"
                        }
                    },
                    submitHandler: function (form) { // for demo
                        alert('valid form submitted'); // for demo

                    }
                });

            });

            </script>

这工作正常,请检查。

谢谢

【讨论】:

  • 请检查我的代码jsfiddle.net/hsdscmcj/5它正在工作。
  • @AmanKumar 你为什么误导。这个jsfiddle.net/hsdscmcj/5 代码也适用于姓名和电子邮件。
  • 对不起,我并不想误导任何人,所以请不要生气谢谢:)
  • @sagar-arora 他提到的代码是正确的。电子邮件的“必需”规则已被设置为错误。因此,它仅验证名称。但由于“标签电子邮件”与验证一起显示,它似乎验证了两者,但事实并非如此。
  • @aman-kumar 添加js链接后,代码在小提琴中找到。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-14
  • 2022-07-15
  • 1970-01-01
相关资源
最近更新 更多