jquery表单验证

来源:互联网 发布:飞尸国语完整版网络 编辑:程序博客网 时间:2024/04/27 14:46

一、使用jQuery验证的前提条件
导入jquery.js和jquery.validate.js两个脚本文件如:

<script src="/javascript/jquery.js" type="text/javascript"></script><script src="/javascript/jquery.validate.js" type="text/javascript"></script>

二、默认的常用验证规则

(1)required:true               必输字段
(2)remote:"check.php"          使用ajax方法调用check.php验证输入值
(3)email:true                  必须输入正确格式的电子邮件
(4)url:true                    必须输入正确格式的网址
(5)date:true                   必须输入正确格式的日期 日期校验ie6出错,慎用
(6)dateISO:true                必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性
(7)number:true                 必须输入合法的数字(负数,小数)
(8)digits:true                 必须输入整数
(9)creditcard:                 必须输入合法的信用卡号
(10)equalTo:"#field"           输入值必须和#field相同
(11)accept:                    输入拥有合法后缀名的字符串(上传文件的后缀)
(12)maxlength:5                输入长度最多是5的字符串(汉字算一个字符)
(13)minlength:10               输入长度最小是10的字符串(汉字算一个字符)
(14)rangelength:[5,10]         输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
(15)range:[5,10]               输入值必须介于 5 和 10 之间
(16)max:5                      输入值不能大于5
(17)min:10                     输入值不能小于10

三、对应上面规则的默认出错提示文字

essages: {
    required: "This field is required.",
    remote: "Please fix this field.",
    email: "Please enter a valid email address.",
    url: "Please enter a valid URL.",
    date: "Please enter a valid date.",
    dateISO: "Please enter a valid date (ISO).",
    dateDE: "Bitte geben Sie ein g眉ltiges Datum ein.",
    number: "Please enter a valid number.",
    numberDE: "Bitte geben Sie eine Nummer ein.",
    digits: "Please enter only digits",
    creditcard: "Please enter a valid credit card number.",
    equalTo: "Please enter the same value again.",
    accept: "Please enter a value with a valid extension.",
    maxlength: $.validator.format("Please enter no more than {0} characters."),
    minlength: $.validator.format("Please enter at least {0} characters."),
    rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
    range: $.validator.format("Please enter a value between {0} and {1}."),
    max: $.validator.format("Please enter a value less than or equal to {0}."),
    min: $.validator.format("Please enter a value greater than or equal to {0}.")
},


如需要修改,可在js代码中加入:

jQuery.extend(jQuery.validator.messages, {
        required: "必选字段",
  remote: "请修正该字段",
  email: "请输入正确格式的电子邮件",
  url: "请输入合法的网址",
  date: "请输入合法的日期",
  dateISO: "请输入合法的日期 (ISO).",
  number: "请输入合法的数字",
  digits: "只能输入整数",
  creditcard: "请输入合法的信用卡号",
  equalTo: "请再次输入相同的值",
  accept: "请输入拥有合法后缀名的字符串",
  maxlength: jQuery.validator.format("请输入一个 长度最多是 {0} 的字符串"),
  minlength: jQuery.validator.format("请输入一个 长度最少是 {0} 的字符串"),
  rangelength: jQuery.validator.format("请输入 一个长度介于 {0} 和 {1} 之间的字符串"),
  range: jQuery.validator.format("请输入一个介于 {0} 和 {1} 之间的值"),
  max: jQuery.validator.format("请输入一个最大为{0} 的值"),
  min: jQuery.validator.format("请输入一个最小为{0} 的值")
});


推荐做法,将此文件放入messages_cn.js中,在页面中引入

<script src="../js/messages_cn.js" type="text/javascript"></script>

四、使用方式

<script src="../js/jquery.js" type="text/javascript"></script><script src="../js/jquery.validate.js" type="text/javascript"></script><script src="./js/jquery.metadata.js" type="text/javascript"></script>$().ready(function() { $("#signupForm").validate();});


<form id="signupForm" method="get" action="">    <p>        <label for="firstname">Firstname</label>        <input id="firstname" name="firstname" class="required" />    </p> <p>  <label for="email">E-Mail</label>  <input id="email" name="email" class="required email" /> </p> <p>  <label for="password">Password</label>  <input id="password" name="password" type="password" class="{required:true,minlength:5}" /> </p> <p>  <label for="confirm_password">确认密码</label>  <input id="confirm_password" name="confirm_password" type="password" class="{required:true,minlength:5,equalTo:'#password'}" /> </p>    <p>        <input class="submit" type="submit" value="Submit"/>    </p></form>

使用class="{}"的方式,必须引入包:jquery.metadata.js

可以使用如下的方法,修改提示内容:
class="{required:true,minlength:5,messages:{required:'请输入内容'}}"

在使用equalTo关键字时,后面的内容必须加上引号,如下代码:
class="{required:true,minlength:5,equalTo:'#password'}"

2.将校验规则写到js代码中

$().ready(function() { $("#signupForm").validate({        rules: {   firstname: "required",   email: {    required: true,    email: true   },   password: {    required: true,    minlength: 5   },   confirm_password: {    required: true,    minlength: 5,    equalTo: "#password"   }  },        messages: {   firstname: "请输入姓名",   email: {    required: "请输入Email地址",    email: "请输入正确的email地址"   },   password: {    required: "请输入密码",    minlength: jQuery.format("密码不能小于{0}个字 符")   },   confirm_password: {    required: "请输入确认密码",    minlength: "确认密码不能小于5个字符",    equalTo: "两次输入密码不一致不一致"   }  }    });});//messages处,如果某个控件没有message,将调用默认的信息<form id="signupForm" method="get" action="">    <p>        <label for="firstname">Firstname</label>        <input id="firstname" name="firstname" />    </p> <p>  <label for="email">E-Mail</label>  <input id="email" name="email" /> </p> <p>  <label for="password">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>        <input class="submit" type="submit" value="Submit"/>    </p></form>required:true 必须有值required:"#aa:checked"表达式的值为真,则需要验证required:function(){}返回为真,表时需要验证后边两种常用于,表单中需要同时填或不填的元素


一个完整的example:

jquery表单验证:

/** * @author Administrator */function initValidator(base){$("#thisForm").validate({onkeyup:false,//设置验证规则   rules: {"userName": {required: true,userNameCheck: true},"passWord": {required: true,rangelength: [6, 12]},"passWordAgain": {required: true,rangelength: [6, 12],equalTo: "#passWord"},"corpName": {required: true},"sms": {required: true,isMobile: true},"email": {required: true,isEmail: true}},//设置错误信息  messages: {"userName": {required: "请输入用户名",userNameCheck: "请输入4-20位字母开头的字母或数字和下划线"},"passWord": {required: "请输入密码",rangelength: "密码长度为6-12位"},"passWordAgain": {required: "请再次输入密码",rangelength: "密码长度为6-12位",equalTo: "两次输入密码不相同"},"corpName": {required: "请输入公司名称"},"sms": {required: "请输入手机号码",isMobile: "请输入有效的手机号码"},"email": {required: "请输入邮箱",isEmail: "请正确填写邮箱格式"}},errorElement:"font",errorPlacement: function(error, element){error.appendTo(element.parent().find(".tipinfo"));},success:"valid"});}

html文件:

<!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 validate表单验证插件制作注册表单验证提交</title><meta name="description" content="jquery validate表单验证插件制作用户注册页面表单提交验证,用户名、手机、密码、邮箱等表单验证。通过这款validate表单验证插件能制作多种表单提交验证。" /><script type="text/javascript" src="js/jquery-1.4.2.min.js"></script><script language="javascript" type="text/javascript" src="js/jquery.validate.js"></script><script language="javascript" type="text/javascript" src="js/validate_expand.js"></script><script language="javascript" type="text/javascript" src="js/validate.js"></script><script type="text/javascript">$(document).ready(function(){initValidator();});</script></head><body><style type="text/css">*{margin:0;padding:0;list-style-type:none;}a,img{border:0;}body{font:12px/180% Arial, Helvetica, sans-serif ,"宋体";}/* demo */.demo{width:600px;margin:50px auto 0 auto;}.demo table td{height:50px;vertical-align:top;}.demo table .tdcon{text-align:right;width:160px;padding:5px 0 0 0;height:45px;}.demo table .stext{border:solid 1px #ddd;height:20px;line-height:20px;font-size:12px;padding:2px;width:200px;float:left;}/* tipinfo */.tipinfo{float:left;}.tipinfo font.error{background:url("images/unchecked.jpg") no-repeat left;padding-left:17px;color:#eb0000;width:300px;display:block;}.tipinfo font.valid{background:url("images/checked.gif") no-repeat left;width:14px;height:13px;overflow:hidden;padding:0;margin:5px 0 0 5px;display:inline-block;} /* Button base */.Button{position:relative;display:inline-block;padding:.45em .825em .45em;text-align:center;line-height:1em; border:1px solid transparent;cursor:pointer;  border-radius:.3em; -moz-border-radius:.3em; -webkit-border-radius:.3em; -moz-transition-property:color, -moz-box-shadow, text-shadow; -moz-transition-duration:.05s; -moz-transition-timing-function:ease-in-out; -webkit-transition-property:color, -webkit-box-shadow, text-shadow; -webkit-transition-duration:.05s; -webkit-transition-timing-function:ease-in-out; box-shadow:0 1px rgba(255,255,255,0.8), inset 0 1px rgba(255,255,255,0.35); -moz-box-shadow:0 1px rgba(255,255,255,0.8), inset 0 1px rgba(255,255,255,0.35); -webkit-box-shadow:0 1px rgba(255,255,255,0.8), inset 0 1px rgba(255,255,255,0.35);}.Button:hover {text-decoration:none;}.Button strong {position:relative; z-index:2;}.Button{display:block;border:1px solid;opacity:1;border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;box-shadow:inset 0 1px rgba(255,255,255,0.35);-moz-box-shadow:inset 0 1px rgba(255,255,255,0.35);-webkit-box-shadow:inset 0 1px rgba(255,255,255,0.35);-moz-transition-property:opacity;-moz-transition-duration:0.5s;-moz-transition-timing-function:ease-in-out;-webkit-transition-property:opacity;-webkit-transition-duration:0.5s;-webkit-transition-timing-function:ease-in-out;}.Button:hover span{-moz-transition-property:opacity;-moz-transition-duration:0.05s;-moz-transition-timing-function:linear;-webkit-transition-property:opacity;-webkit-transition-duration:0.05s;-webkit-transition-timing-function:linear;}.Button:active span{-moz-transition:none;-webkit-transition:none;}/* Blue Button */.BlueButton{color:#fcf9f9; text-shadow:0 -1px rgba(34,25,25,0.5);}.BlueButton:hover {color:#fff; text-shadow:0 -1px rgba(34,25,25,0.3);}.BlueButton:active {color:#f2f0f0; text-shadow:0 -1px rgba(34,25,25,0.6);}.BlueButton{border-color:#015E91;background-color:#3693D5;background:-moz-linear-gradient(center top , #54B1EB, #47A0E0 50%, #419FE1 50%, #3683D5);background:-o-linear-gradient(top left, #54B1EB, #47A0E0 50%, #419FE1 50%, #3683D5);background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#54B1EB), to(#47A0E0), color-stop(.5,#419FE1),color-stop(.5,#3683D5));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#54B1EB', endColorstr='#3683D5');}.BlueButton:hover{border-color:#0366AD;background-color:#3EA1D6;background:-moz-linear-gradient(center top, #5EB4EA, #61A1EE 50%, #59A5EB 50%, #3691E6);background:-o-linear-gradient(top left, #5EB4EA, #61A1EE 50%, #59A5EB 50%, #3691E6);background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#5EB4EA), to(#61A1EE), color-stop(.5,#59A5EB),color-stop(.5,#3691E6));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5EB4EA', endColorstr='#3691E6');}.BlueButton:active{border-color:#013B6A;background-color:#3089C8;background:-moz-linear-gradient(center top, #4B9CDD, #4189D5 50%, #3D8BD3 50%, #3093C8);background:-o-linear-gradient(top left, #4B9CDD, #4189D5 50%, #3D8BD3 50%, #3093C8);background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#4B9CDD), to(#4189D5), color-stop(.5,#3D8BD3),color-stop(.5,#3093C8));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4B9CDD', endColorstr='#3093C8');}.BlueButton.Button18:hover{box-shadow:0 1px rgba(255, 255, 255, 0.8), 0 1px rgba(255, 255, 255, 0.35) inset, 0 0 10px rgba(82, 162, 235, 0.25);-moz-box-shadow:0 1px rgba(255, 255, 255, 0.8), 0 1px rgba(255, 255, 255, 0.35) inset, 0 0 10px rgba(82, 162, 235, 0.25);-webkit-box-shadow:0 1px rgba(255, 255, 255, 0.8), 0 1px rgba(255, 255, 255, 0.35) inset, 0 0 10px rgba(82, 162, 235, 0.25);}.BlueButton.Button18:active{box-shadow:0 1px 2px rgba(34, 25, 25, 0.25) inset, 0 0 3px rgba(82, 202, 235, 0.35);-moz-box-shadow:0 1px 2px rgba(34, 25, 25, 0.25) inset, 0 0 3px rgba(82, 202, 235, 0.35);-webkit-box-shadow:0 1px 2px rgba(34, 25, 25, 0.25) inset, 0 0 3px rgba(82, 202, 235, 0.35);} </style><div class="demo"><form id="thisForm" method="post" action=""><table width="100%"><tr><td class="tdcon">会员登录名:</td><td><input class="stext" type='text' name="userName" id="userName" value="" /><div class="tipinfo"></div></td></tr><tr><td class="tdcon">密码:</td><td><input class="stext" type="password" name="passWord" id="passWord" value="" /><div class="tipinfo"></div></td></tr><tr><td class="tdcon">再次输入密码:</td><td><input class="stext" type='password' name="passWordAgain" id="passWordAgain" value="" /><div class="tipinfo"></div></td></tr><tr><td class="tdcon">公司名称:</td><td><input class="stext" type='text' name="corpName" id="corpName" value="" /><div class="tipinfo"></div></td></tr><tr><td class="tdcon">手机号码:</td><td><input class="stext" type='text' name="sms" id="sms" value="" /><div class="tipinfo"></div></td></tr><tr><td class="tdcon">邮编:</td><td><input class="stext" type='text' name="email" id="email" value="" /><div class="tipinfo"></div></td></tr><tr><td></td><td><button name="Submit" type="submit" class="Button BlueButton Button18">同意以下服务条款并注册</button></td></tr></table></form></div></body></html>


原创粉丝点击