验证表单是我们经常需要做的,今天发现了jQuery一个很强大的验证表单插件(jquery.validate.js 下载地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation/),研究了一下发现他不光强大而且十分易于上手。真是不用不知道,一种真奇妙啊!
下面附上一个小例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery表单验证例子</title> <link type="text/css" rel="stylesheet" media="screen" href="style/cmxform.css" /> <link type="text/css" rel="stylesheet" media="screen" href="style/reg.css" /> <!--[if lte IE 6]> <link type="text/css" rel="stylesheet" media="screen" href="style/ie.css" /> <![endif]--> <script type="text/javascript" src="script/jquery.js"></script> <script type="text/javascript" src="script/jquery.validate.js" charset="gb2312"></script> <script type="text/javascript" src="script/buttonstyle.js"></script> <script> function checkidcard(num){ var len = num.length, re; if (len == 15) re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/); else if (len == 18) re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/); else{ //alert("请输入15或18位身份证号,您输入的是 "+len+ "位"); return false; } var a = num.match(re); if (a != null){ if (len==15){ var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]); var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; }else{ var D = new Date(a[3]+"/"+a[4]+"/"+a[5]); var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; } if (!B){ //alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false; } } return true; } </script> <script type="text/javascript"> $.validator.setDefaults({ submitHandler: function() { alert("submitted!"); } }); // 添加验证方法 (身份证号码验证) jQuery.validator.addMethod("isIdCardNo", function(value, element) { return this.optional(element) || checkidcard(value); }, "请正确输入您的身份证号码"); $().ready(function() { $("#firstform").validate(); $("#secondform").validate({ /*errorLabelContainer: "#messageBox", //显示错误信息的容器ID wrapper: "li", //包含每个错误信息的容器*/ rules:{ xm:{ required: true, minlength: 2, maxlength: 5 }, pwd:{ required: true, minlength: 6 }, confirm_pwd:{ required: true, equalTo: "#pwd" }, f2csrq:{ required: true, date: true }, f2xjzd: { required: true }, f2sfzh:{ /*digits: true, rangelength: [18,20]*/ required: true, isIdCardNo: true } }, messages:{ xm:{ required: "请填写姓名", minlength: "字符长度不能小于2个字符", maxlength: "字符长度不能大于5个字符" }, pwd:{ required: "请填写密码", minlength: "字符长度不能小于6个字符" }, confirm_pwd:{ required: "请再次输入密码", equalTo: "密码不一致" }, f2csrq:{ required: "请输入出生日期", date: "日期格式不正确(例:2009/04/07)" }, f2xjzd:{ required: "请输入地址" }, f2sfzh:{ /*digits: "身份证号码只能为数字", rangelength: "身份号码长度为18~20个字符"*/ required: "请输入身份证号", isIdCardNo: "身份证号不正确" } } }); /*// 输入框获得焦点时,样式设置 $('input').focus(function(){ if($(this).is(":text") || $(this).is(":password")) $(this).addClass('focus'); if ($(this).hasClass('have_tooltip')) { $(this).parent().parent().removeClass('field_normal').addClass('field_focus'); } }); // 输入框失去焦点时,样式设置 $('input').blur(function() { $(this).removeClass('focus'); if ($(this).hasClass('have_tooltip')) { $(this).parent().parent().removeClass('field_focus').addClass('field_normal'); } });*/ }); </script> </head> <body> <div id="header"></div> <div id="main"> <form id="firstform" method="get" action=""> <fieldset> <legend>jQuery验证</legend> <div id="xm" class="owinput"> <div class="owlabel"> <label class="req" for="xm"> 姓 名 :</label> </div> <div class="owfield"> <span class="inp"> <input name="xm" class="required" minlength="2"> </span> </div> </div> <div id="xb" class="owinput"> <div class="owlabel"> <label class="req" for="f1pwd"> 密 码 :</label> </div> <div class="owfield"> <span class="inp"> <input id="f1pwd" name="f1pwd" class="required" minlength="6"> </span> </div> </div> <div id="xb" class="owinput"> <div class="owlabel"> <label class="req" for="f1pwd2"> 密码确认 :</label> </div> <div class="owfield"> <span class="inp"> <input value="" name="f1pwd2" type="text" class="required" equalTo="#f1pwd"> </span> </div> </div> <div id="csrq" class="owinput"> <div class="owlabel"> <label class="req" for="f1csrq"> 出生日期 :</label> </div> <div class="owfield"> <span class="inp"> <input name="f1csrq" type="text" class="required date"> </span> </div> </div> <div id="xjzd" class="owinput"> <div class="owlabel"> <label class="req" for="f1xjzd"> 现居住地 :</label> </div> <div class="owfield"> <span class="inp"> <input name="f1xjzd" type="text" class="required"> </span> </div> </div> <div id="sfzh" class="owinput"> <div class="owlabel"> <label class="req" for="f1sfzh"> 身份证号 :</label> </div> <div class="owfield"> <span class="inp"> <input name="f1sfzh" type="text" class="required isIdCardNo" minlength="18" maxlength="19"> </span> </div> </div> </fieldset> <div id="regSubmit"> <span id="btnCreate" class="regBtn" onmouseover="btncreatehover(this);" onmouseout="btncreateout(this);"> <b class="tl"><b class="tr"></b></b><button id="send" type="submit">提 交</button><b class="bl"><b class="br"></b></b> </span> <span id="btnCancel" class="cancelBtn" onmouseover="btncancelhover(this);" onmouseout="btncancelout(this);"> <b class="tl"><b class="tr"></b></b><button id="cancelBtn" type="button">取 消</button><b class="bl"><b class="br"></b></b> </span> </div> </form> <form id="secondform"> <fieldset> <legend>自定义jQuery验证</legend> <div id="xm" class="owinput"> <div class="owlabel"> <label class="req" for="xm"> 姓 名 :</label> </div> <div class="owfield"> <span class="inp"> <input name="xm" type="text"> </span> </div> </div> <div id="xb" class="owinput"> <div class="owlabel"> <label class="req" for="pwd"> 密 码 :</label> </div> <div class="owfield"> <span class="inp"> <input id="pwd" name="pwd" type="text"> </span> </div> </div> <div id="xb" class="owinput"> <div class="owlabel"> <label class="req" for="confirm_pwd"> 密码确认 :</label> </div> <div class="owfield"> <span class="inp"> <input name="confirm_pwd" type="text"> </span> </div> </div> <div id="csrq" class="owinput"> <div class="owlabel"> <label class="req" for="f2csrq"> 出生日期 :</label> </div> <div class="owfield"> <span class="inp"> <input name="f2csrq" type="text"> </span> </div> </div> <div id="xjzd" class="owinput"> <div class="owlabel"> <label class="req" for="f2xjzd"> 现居住地 :</label> </div> <div class="owfield"> <span class="inp"> <input value="" name="f2xjzd" type="text"> </span> </div> </div> <div id="sfzh" class="owinput"> <div class="owlabel"> <label class="req" for="f2sfzh"> 身份证号 :</label> </div> <div class="owfield"> <span class="inp"> <input name="f2sfzh" type="text"> </span> </div> </div> </fieldset> <div id="messageBox"></div> <!-- 此容器用于汇总显示错误信息 --> <div id="regSubmit"> <span id="btnCreate" class="regBtn" onmouseover="btncreatehover(this);" onmouseout="btncreateout(this);"> <b class="tl"><b class="tr"></b></b><button id="send" type="submit">提 交</button><b class="bl"><b class="br"></b></b> </span> <span id="btnCancel" class="cancelBtn" onmouseover="btncancelhover(this);" onmouseout="btncancelout(this);"> <b class="tl"><b class="tr"></b></b><button id="cancelBtn" type="button">取 消</button><b class="bl"><b class="br"></b></b> </span> </div> </form> </div> <div id="footer"></div> </body> </html>该文档转载自 http://ideabean.javaeye.com/blog/363927
完整例子源码jQuery表单验证例子.rar