菜鸟学堂
在线运行
源代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jQuery validation 插件 - ThemeRolldered 实例</title> <link rel="stylesheet" media="screen" href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.min.css"> <style> body { font-size: 62.5%; } label { display: inline-block; width: 100px; } legend { padding: 0.5em; } fieldset fieldset label { display: block; } #commentForm { width: 500px; } #commentForm label { width: 250px; } #commentForm label.error, #commentForm button.submit { margin-left: 253px; } #signupForm { width: 670px; } #signupForm label.error { margin-left: 10px; width: auto; display: inline; } #newsletter_topics label.error { display: none; margin-left: 103px; } </style> </head> <body> <form class="cmxform" id="commentForm" method="get" action=""> <fieldset class="ui-widget ui-widget-content ui-corner-all"> <legend class="ui-widget ui-widget-header ui-corner-all">请提供您的名字、电子邮件地址(不会被公布)和评论</legend> <p> <label for="cname">请提供您的名字、电子邮件地址(不会被公布)和评论</label> <input id="cname" name="name" class="ui-widget-content" minlength="2" required type="text"> <p> <label for="cemail">E-Mail(必填)</label> <input id="cemail" name="email" class="ui-widget-content" type="email" required> </p> <p> <label for="curl">E-Mail(必填)</label> <input id="curl" name="url" class="ui-widget-content" value="" type="url"> </p> <p> <label for="ccomment">您的评论(必填)</label> <textarea id="ccomment" name="comment" class="ui-widget-content" required></textarea> </p> <p> <button class="submit" type="submit">提交</button> </p> </fieldset> </form> <form class="cmxform" id="signupForm" method="get" action=""> <fieldset class="ui-widget ui-widget-content ui-corner-all"> <legend class="ui-widget ui-widget-header ui-corner-all">验证一个完整的表单</legend> <p> <label for="firstname">名字</label> <input id="firstname" name="firstname" type="text"> </p> <p> <label for="lastname">姓氏</label> <input id="lastname" name="lastname" type="text"> </p> <p> <label for="username">用户名</label> <input id="username" name="username" type="text"> </p> <p> <label for="password">密码</label> <input id="password" name="password" type="password"> </p> <p> <label for="confirm_password">确认密码</label> <input id="confirm_password" name="confirm_password" type="password"> </p> <p> <label for="email">Email</label> <input id="email" name="email" type="email"> </p> <p> <label for="agree">请同意我们的条款</label> <input type="checkbox" class="checkbox" id="agree" name="agree"> </p> <p> <label for="newsletter">我希望收到简讯</label> <input type="checkbox" class="checkbox" id="newsletter" name="newsletter"> </p> <fieldset id="newsletter_topics" class="ui-widget-content ui-corner-all"> <legend class="ui-widget-header ui-corner-all">主题(至少选择两个)- 注:当未选择简讯时隐藏该项,但此处为了演示所以可见</legend> <label for="topic_marketflash"> <input type="checkbox" id="topic_marketflash" value="marketflash" name="topic"> Marketflash </label> <label for="topic_fuzz"> <input type="checkbox" id="topic_fuzz" value="fuzz" name="topic"> Latest fuzz </label> <label for="topic_digester"> <input type="checkbox" id="topic_digester" value="digester" name="topic"> Mailing list digester </label> <label for="topic" class="error">请选择至少两个您感兴趣的主题。</label> </fieldset> <p> <button class="submit" type="submit">提交</button> </p> </fieldset> </form> <script src="http://edu.jb51.net/assets/jquery-validation-1.14.0/lib/jquery.js"></script> <script src="http://edu.jb51.net/assets/jquery-validation-1.14.0/dist/jquery.validate.min.js"></script> <script src="http://edu.jb51.net/assets/jquery-validation-1.14.0/dist/localization/messages_zh.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script> <script> $.validator.setDefaults({ submitHandler: function() { alert("submitted!"); }, showErrors: function(map, list) { // there's probably a way to simplify this var focussed = document.activeElement; if (focussed && $(focussed).is("input, textarea")) { $(this.currentForm).tooltip("close", { currentTarget: focussed }, true) } this.currentElements.removeAttr("title").removeClass("ui-state-highlight"); $.each(list, function(index, error) { $(error.element).attr("title", error.message).addClass("ui-state-highlight"); }); if (focussed && $(focussed).is("input, textarea")) { $(this.currentForm).tooltip("open", { target: focussed }); } } }); (function() { // use custom tooltip; disable animations for now to work around lack of refresh method on tooltip $("#commentForm, #signupForm").tooltip({ show: false, hide: false }); // validate the comment form when it is submitted $("#commentForm").validate(); // validate signup form on keyup and submit $("#signupForm").validate({ rules: { firstname: "required", lastname: "required", username: { required: true, minlength: 2 }, password: { required: true, minlength: 5 }, confirm_password: { required: true, minlength: 5, equalTo: "#password" }, email: { required: true, email: true }, topic: { required: "#newsletter:checked", minlength: 2 }, agree: "required" }, messages: { firstname: "请输入您的名字", lastname: "请输入您的姓氏", username: { required: "请输入一个用户名", minlength: "您的用户名必须包含至少 2 个字符" }, password: { required: "请提供一个密码", minlength: "您的密码必须包含至少 5 个字符" }, confirm_password: { required: "请提供一个密码", minlength: "您的密码必须包含至少 5 个字符", equalTo: "请输入与上面相同的密码" }, email: "请输入一个有效的电子邮件地址", agree: "请接受我们的条款" } }); // propose username by combining first- and lastname $("#username").focus(function() { var firstname = $("#firstname").val(); var lastname = $("#lastname").val(); if (firstname && lastname && !this.value) { this.value = firstname + "." + lastname; } }); //code to hide topic selection, disable for demo var newsletter = $("#newsletter"); // newsletter topics are optional, hide at first var inital = newsletter.is(":checked"); var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray"); var topicInputs = topics.find("input").attr("disabled", !inital); // show when newsletter is checked newsletter.click(function() { topics[this.checked ? "removeClass" : "addClass"]("gray"); topicInputs.attr("disabled", !this.checked); }); $("#signupForm input:not(:submit)").addClass("ui-widget-content"); $(":submit").button(); })(); </script> </body> </html>
运行结果
在线运行
菜鸟学堂 edu.jb51.net