jQuery 表单验证插件——Validation(基础)

jQuery 表单验证插件——Validation(基础)

  (2011-04-23 15:10:21)
标签: 

杂谈

分类: javascript

 jQuery 表单验证插件——Validation

Validation插件式历史悠久的jQuery插件之一,经过了全球各种项目的验证,得到了很多WEB开发者的好评,作为一个表单验证的解决方案,Validation有很多的优点,比如:

内置的验证规则,如:必填、数字、E-MailURL和信用卡号码等19类内置验证规则

可以自定义验证规则:可以很方便地自定义验证规则

简单而且强大的验证信息提示:没人了验证信息提示,并提供自定义覆盖默认提示信息功能

实时进行验证的功能.:通过blurkeyup时间来触发验证规则

此外,还是用ajax实现了服务器端远程验证。 都可以令前台开发变得非常的简单.

 

下载地址:http://plugins.jquery.com/project/vlidate

写法一(推荐直接使用写法三,因为它实现了行为与结构的分离)

 

废话少说,代码解释:

<script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script>

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

<script type="text/javascript">

  $(document).ready(function(){

    $("#commentForm").validate();

  });

  </script>

 

<form class="cmxform" id="commentForm" method="get" action="">

 <fieldset>

   <legend>一个简单的验证带验证提示的评论例子</legend>

   <p>

     <label for="cusername">姓名</label>

     <em>*</em><input id="cusername" name="username" size="25" class="required" minlength="2" />

   </p>

   <p>

     <label for="cemail">电子邮件</label>

     <em>*</em><input id="cemail" name="email" size="25"  class="required email" />

   </p>

   <p>

     <label for="curl">网址</label>

     <em>  </em><input id="curl" name="url" size="25"  class="url" value="" />

   </p>

   <p>

     <label for="ccomment">你的评论</label>

     <em>*</em><textarea id="ccomment" name="comment" cols="22"  class="required"></textarea>

   </p>

   <p>

     <input class="submit" type="submit" value="提交"/>

   </p>

 </fieldset>

 </form>

验证效果:

jQuery <wbr>表单验证插件——Validation(基础)

上面绿色标出的部分是需要注意的部分,也是validation执行验证的部分。可以看到validation统计一段$("#commentForm").validate();便可完成原来繁重任务。你可能会问,他的验证规则在哪里啊,为什么获取一个form表单元素连上一个validate()便可完成验证。其实validation把验证规则都封装在了内部,还记from表单里标出的classminlength属性么,它可以来调去告诉其自身所在input元素所用的验证规则,如:<input type='text' class='required' ,这个input框就会被validation解释为必须填写的。此外:

 minlength最少输入字符,class里的包括  required 必须、email 电子邮件、 url 网址、

其他验证的写法

写法二

上面的方法时而将验证信息写在class中,时而写在minlength中实在麻烦,validation充分考虑了这一点,设置了另一种方法,将与验证相关的信息都写在class属性中,便于管理。操作步骤如下:

引入插件——jquer.metadata.js

改变验证方法为:$("formId").validate( {meta: "validate"} );   validate是自定义的,但要和 下文class中的保持一致

将验证规则全部写入class属性中(表单中input元素要添加name值,否则提交时只会验证第一个input元素,其他的在点击后才会验证)

<input id="cusername" name="usernamesize="25"  class="{validate: {required: true minlength2}}" value="" />

<input id="cemailname="emailsize="25"  class="{validate{required: true email: true}}" value="" />

<input id="curlname="url" size="25"  class="{validataurl: true }}" value="" />

<textarea id="ccomment" name="comment" cols="22"  class="{validata: {required: true }}"></textarea>

写法三

上面的写法并没有完全脱离HTML结果,下面介绍一种与HTML元素属性无直接关联,而是通过name属性来关联字段和验证规则的验证写法。这种写法实现了行为与结构的分离。

将原来的class属性移除,使其无多余的属性:

<input id="cusername" name="usernamesize="25"   value="" />

<input id="cemailname="email" size="25"   value="" />

<input id="curlname="url" size="25"  value="" />

<textarea id="ccomment" name="comment" cols="22" ></textarea>

jQuery代码如下:

$("#formId").validate({

rules  //增加rules属性

username: required true minlength 2}  

email required true email true} ,

url "url" ,

comment "required"

}

})

 

验证信息

Validation插件的验证信息默认是英文的,如果要改为中文,只需要引入validation提供的中文验证信息库即可,引入代码如下:

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

自定义验证信息

Validation插件可以很方便地自定义验证规则,用来代替千遍一律的默认验证信息。如:

<input id="cusername" name="usernamesize="25"  class="{validate: {required: true minlengthmessage:{required '请输入姓名minlength '请至少输入两个字符'}}}" value="" />

<input id="cemailname="emailsize="25"  class="{validate{required: true email: true message:{required '请输入邮箱email: '请检查邮箱格式是否正确'}}}" value="" />

<input id="curlname="url" size="25"  class="{validataurl: true message:{url: '请输入网址,}}}" value="" />

<textarea id="ccomment" name="comment" cols="22"  class="{validata: {required: true  message:{required '请输入您的排列}}}"></textarea>

如在jquery代码里加messages的话是和rules同级

$("#formid").validate({

rules:{

username:{required:true,minlength:2},

},

messages:{

username:{required:"必须填写",minlength:"最少2个字符"}

}

});

jQuery <wbr>表单验证插件——Validation(基础)

自定义验证信息并美化

jquery中(与rules同级)添加下列代码:

errorElement "em", //用来创建错误提示信息标签(可自定义)

Success function(label){    //验证成功后执行的回调函数,label指向上面那个错误提 示信息标签em

label.text(  //清空错误提示消息

addClass("success")  //添加上自定义的success

}

再在css中给em.error 和 em.success设置样式(如背景分别为错号和对号等)

自定义验证规则

创建规则:

$.validator addMethod(

"formula",     //自定义规则方法名

function(value element param){   /自定义规则体

return value == eval_r(param);

},

'请输入正确的数学公式计算后的结果  //提示信息

)

调用:

Rules中加入valcode :( 自定义规则名 "参数")

$("#formId").validate({

rules  //增加rules属性

username: required true minlength 2}  

email required true email true} ,

url "url" ,

comment "required" ,

valcode (formula "7+9")  //valcodename的值

}

})

 

Validation的具体属性及高级应用见下面链接:

http://wenku.baidu.com/view/1283e485ec3a87c24028c48a.html

自定义验证规则:

http://www.jb51.net/article/24013.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本人自己开发的jquery表单验证控件! 使用方便,样式美观,完全开源。好不好用了就知道了! 插件名称:jquery表单验证插件 V1.0 插件作者:zy8008 最后更新:2011-4-28 插件说明: datatype类型说明: --------------------------------------- *:必填写,可为任意字符 number:数字 zip:邮政编码 mobile:手机号 email:邮箱 ajax:异步远程验证,必须添加ajaxurl属性并将要验证的字段保留空 如: reg:正则验证,必须添加reg属性 如: checkbox:复选框验证 radiobox:单选框验证 前台添加属性说明: ----------------------------------------------- datatype:必须 数据验证类型,见上面说明 errmsg:可选 错误信息,验证失败的信息,如果不设置或为空,则验证框显示“验证失败!” tip:可选 未验证前的提示信息,如果不设置或为空,则隐藏提示框 allowblank:可选 值为“true|false”默认为true 是否允许为空,如果设为true则值为空的时候也能通过验证,对*,ajax,checkbox,radiobox,reg无效 reg: 正则表达式规则,只能用开datatype为reg的时候,否则无效 ajaxurl:异步远程验证url,只能用的datatype为ajax的时候,否则无效。将要验证的字段放在url最后,将留空 如test.asp?uname= 调用说明: ------------------------------------------------- $(document).ready(function() { $("#aspnetForm").valideform({isokhide:true,btnsubmit:"#bbb"})}); #aspnetForm:需要验证的表单的ID,你也可以用jquery选择器自已定义 isokhid:可选 值为“true|false”默认为false 当点击提交按钮的时候,如果通过验证的项目将隐藏验证提示框 btnsubmit:可选 指定一个绑定提交事件的控件ID,如一个普通按钮或一个超链接,表单中的submit依然有效 其它具体使用方法,请参阅demo文件!
jQuery formValidator表单验证插件,它是基于jQuery类库,实现了js脚本于页面html代码的分离。你可以划分多个校验组,每个组的校验都是互不影响。对一个表单对象,你只需要写一行代码就可以轻松实现无数种脚本控制。jQuery formValidator表单插件致力于改善重复编程、考虑浏览器兼容性等情况;你只关心业务逻辑,而无需关心实现过程,只需简单的配置,无需写代码就能实现表单的检验。 jQuery formValidator表单校验插件 4.1.0 升级内容: 新增以下功能: 1、新增换肤功能,包括提示层的样式、输入控件(目前只支持text、password、file、textarea)的样式。initConfig增加theme属性,表示皮肤名,theme的值可取目录theme下的文件夹名。详见电子版帮助文件里的【制作皮肤】 2、formvalidator函数增加属性leftTrim和rightTrim。是否去掉左边或右边的空格,默认值false 3、ajaxValidator的success事件,可以返回字符串,表示错误信息,将显示在提示层上。 4、为initConfig增加属性ajaxForm,用于配置整个表单ajax提交的参数,详见demo7和api帮助 $.formValidator.initConfig({theme:"Default",submitOnce:true,formID:"form1",ajaxForm:{ dataType : "html", buttons:$("#button"), url: "http://www.51gh.net/chkuser.aspx?act=ok" }}); 5、所有函数的onError和onSuccess支持字符串,也支持函数(参数为当前的值)返回字符串。 6、发布网页版代码生成器,从当前版本开始支持。 解决以下BUG: 1、修正ajaxValidator函数有一处条件书写错误的BUG。 2、修正formvalidator函数autoModify属性对password控件不起作用的BUG。 调用步骤: a、在你要校验的表单页面中引入代码生成器的脚本。 b、调用函数。如果已经写了校验代码,请在校验代码注册完成后调用。 $.formValidatorTools.openTools(); 压缩包相关变更 1、所有的帮助、范例制作成了chm电子帮助文件 2、插件相关的文件放一个目录里 插件支持5种大的校验方式,分别是:inputValidator(针对input、textarea、select控件的字符长度、值范围、选择个数的控制)、compareva lidator(提供2个对象的比较,目前可以比较字符串和数值型)、ajaxValidator(通过ajax到服务器上做数据校验)、regexValidator(提供可扩展的正则表达式库) 、functionValidator (可使用外部函数来做校验,可以当做过程处理)。插件支持四种提示模式:固定提示层(FixTip)、自动构建提示层(AutoTip)、单个提示层跟随(SingleTip)、弹出提示内容(AlertTip)。插件支持换肤:默认情况下提供4套皮肤,其中包括58网、网易邮箱注册两套皮肤。 本插件于其他校验控件最大的区别有6点: 1、校验功能可以扩展。    对中文、英文、数字、整数、实数、Email地址格式、基于HTTP协议的网址格式、电话号码格式、手机号码格式、货币格式、邮政编码、身份证号码、QQ号码、日期等等这些控制,别的表单校验控件是代码里写死的,而formValidator是通过外部js文件来扩展的,你可以通过写正则表达式和函数来无限的扩展这些功能。 2、实现了校验代码于html代码的完全分离。    你的所有信息都无需配置在校验表单元素上,你只要在js上配置你的信息。使美工(界面)和JavaScript工程师的工作不交织在一起 3、你只需写一行代码就能完成一个表单元素的所有校验。你只需要写一行代码就能完成一下所有的控制 •支持所有类型客户端控件的校验 •支持jQuery所有的选择器语法,只要控件有唯一ID和type属性 •支持函数和正则表达式的扩展。提供扩展库formValidatorReg.js,你可以自由的添加、修改里面的内容。 •支持2种校验模式。第一种:文字提示(showword模式);第二种:弹出窗口提示(showalert模式) •支持多个校验组。如果一个页面有多个提交按钮,分别做不同得提交,提交前要做不同的校验,所以你得用到校验组的功能。 •支持4种状态的信息提示功能,可以

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值