作为初学者,以前做表单验证都是自己写的,目的是让自己更好的了解代码,加深自己对javascript的理解,但是其实在很久都知道有一个很好用的表单验证插件:jQuery Validate.js,一直都没时间去自己敲了练习一下,今天终于忍不住想试一试这个插件。
1,首先引入必要的js文件
<script src="jquery-2.1.4/jquery.min.js"></script> <script src="jquery-validation-1.14.0/dist/jquery.validate.min.js"></script> <script src="jquery-validation-1.14.0/dist/localization/messages_zh.min.js"></script> <script src="layer-v2.4/layer/layer.js"></script>
2,该插件和许多插件一样,有两种用法:1.将效验规则写到控件中,2.将效验规则写到js代码中,我再此演示的是第二种
HTML代码:
<form class="cmxform" id="signupForm" method="get" action=""> <fieldset> <legend>验证完整的表单</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> <input class="submit" type="submit" value="提交"> </p> </fieldset> </form>
Js代码,在显示我用了layer插件,是一款很好的弹窗插件,百度就可以找到
<script> $.validator.setDefaults({ submitHandler: function () { alert("提交事件!"); } }); $().ready(function () { // 在键盘按下并释放及提交后验证提交表单 $("#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 }, agree: "required" }, messages: { firstname: "请输入您的名字", lastname: "请输入您的姓氏", username: { required: "请输入用户名", minlength: "用户名必需由两个字母组成" }, password: { required: "请输入密码", minlength: "密码长度不能小于 5 个字母" }, confirm_password: { required: "请输入密码", minlength: "密码长度不能小于 5 个字母", equalTo: "两次密码输入不一致" }, email: "请输入一个正确的邮箱", agree: "请接受我们的声明" }, //重写showErrors showErrors: function (errorMap, errorList) { var msg = ""; $.each(errorList, function (i, v) { //msg += (v.message + "\r\n"); //在此处用了layer的方法,显示效果更美观 layer.tips(v.message, v.element, { time: 2000 }); return false; }); }, /* 失去焦点时不验证 */ onfocusout: false }); }); </script> <style> .error { color: blue; } </style>
看下效果吧,是不是比之前自己写的验证效果好看了许多勒
时间: 2024-10-25 20:54:55