很强大jquery插件jquery.validate.js api

张映 发表于 2010-05-18

分类目录: nodejs/vue/js/jquery

标签:, ,

一,jquery.validate这款插件干什么的,有什么用

说简单一点,就是对录入信息进行审核. 好处如下:

1,不要需要在另外去写,email,url,字符,数字等等的审核了

2,插件自带的debug功能,可以让你显示和隐藏,报错信息.

3,里面包含了很多事件,keyup,click,focus,blur等等

4,如果插件满足不了你的验证要求,没问题,你可以用addMethod来添加你的验证方法

5,开发大型网站时,管理信息录入,这个很有必要。插件必尽有专人来研究,肯定会比你想的要全。 我就遇到过这种情况,做电子商务,为商家录入信息,注册就有几个录入,后台添加商品,信息发布,图片,优惠,公告,小文等等,自己写的验证function来控制这些信息录入没问题,但是东西越多,管理起来越不方便。

二,validate的应用实例 http://blog.51yip.com/demo/regist.htm

为了不让页面过长,只贴个JS文件regist.js

function regist(callback){
   var aaa = this;

   this.init = function(){
   	   aaa.addnotice();
   	   aaa.addm();
   	   aaa.check();
   	   aaa.unchange();
   	   return aaa;
   }

   this.addnotice = function(){

       $("input[type='text']").each(function(){
       		$(this)
       		.focus(function(){
       			if($(this).val() == $(this).attr('notice')){
       				$(this).val("");
       			}
       		})
       		.blur(function(){
       			if($(this).val() == $(this).attr('notice') || $.trim($(this).val()) == ""){
       				$(this).val($(this).attr('notice'));
       			}
       		});
       });
   }

   this.cleannotice = function(){
       $("input[type='text']").each(function(){
       		if($(this).val() == $(this).attr('notice')){
       			$(this).val("");
       		}
       });
   }

   this.unchange = function(){
       $(".select").bind('change',function(){
       		if($(this).val() == '0'){
       			$("#citySelect").attr("class","error").html('请选择区域').show();
       			$("#RegionId").attr("class","error");
       		}else{
       			$("#citySelect").attr("class","valid").html('success').show();
       			$("#RegionId").attr("class","valid");
       		}
       });
   }

   this.addm = function(){
		 jQuery.validator.addMethod("iszipcode", function(value, element) {
		   var tel = /^[0-9]{6}$/;
		   return this.optional(element) || (tel.test(value));
		 }, "请正确填写您的邮政编码");    

		 jQuery.validator.addMethod("engname", function(value, element) {
		   var tel = /^[a-zA-Z]*$/;
		   return this.optional(element) || (tel.test(value));
		 }, "请输入英文字符");
   }

   this.check = function(){
   	$('#regist_form').submit(function(){
		aaa.cleannotice();
	});

	$("#regist_form").validate({
	   rules: {
	     Name: "required",
	     engName:{
		     required:true,
		     engname:true,
		     rangelength:[4,10]
			},
	     Email: {
	       required:true,
	       email:true,
	       rangelength:[4,50]
	     },
	     postCode: {
	       required: true,
	       rangelength:[6,6],
	       iszipcode: true
	     },
	     phone: {
	       required:true,
	       number:true,
	       rangelength:[11,11]
	     }
	   },
	   messages: {
	     Name: "请输入名字",
	     engName: {
	       required: "请输入英文名",
	       rangelength: jQuery.format("长度请控制在{0} ~ {1}")
	     },
	     Email: {
	       required: "请输入EMAIL",
	       email: "请输入正确的EMAIL"
	     },
	     postCode: {
	       required: "请输入邮编",
	       rangelength:jQuery.format("长度必须是6位")
	     },
	     phone: {
	       required: "请输入手机号",
	       number: "请输入数字",
	       rangelength: jQuery.format("长度必须是11位")
	     }
	   },
	   success: function(label) {
	     label.addClass("valid").text("succuess!");
	   },
	   submitHandler: function() {
			if($("#RegionId").val() == '0'){
				$("#citySelect").attr("class","error").html('请选择区域').show();
				$("#RegionId").attr("class","error");
			}else{
				$("#RegionId").attr("class","valid");
				$("#citySelect").attr("class","valid").html('success').show();
			}
	   },
	   debug:true
	});
   }

}

代码是根oop思想写的

参考文档

http://docs.jquery.com/Plugins/Validation/Methods



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/jsjquery/792.html