`
步青龙
  • 浏览: 292322 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
72ba33fb-eefe-3de1-bd65-82a6e579265d
Java面试
浏览量:0
社区版块
存档分类
最新评论

jquery formValdator 插件那些破事儿

 
阅读更多

传统验证框架的弊端: 大多的验证框架验证决定是否提交,对于非必填字段 需要验证 但是不一定要填写,这就暴漏了大多数验证框架的弊端。

不过jquery还提供了一种只验证是否通过的方法pageIsValid。

但是实际运用中发现jquery formValdator的pageIsValid验证有问题,所有的验证字段都通过了,但是无法提交,对于一个form 可以,但是对于多个form的同时提交就出现问题了,所以修改验证方法,添加pageIsValid2 方法。返回数字的话就不会出现像return true,return false各种奇形怪状的问题, pageIsValid函数不能验证多个form 里面都写死了 group。

这里只验证各个字段是否通过验证,并不提交。

	//多个Group,验证所有需要验证的对象,并返回是否验证成功。
	pageIsValid2 : function (validatorgroup)
	{// 0  验证不通过 1 验证通过 
		var iValid = 1;
	    if(validatorgroup == null || validatorgroup == undefined){validatorgroup = "1"};
		var isvalid = true;
		var thefirstid = "",thefirsterrmsg;
		var returnObj,setting;
		var error_tip = "^"; 	
		var initConfig = $.formValidator.getInitConfig(validatorgroup);
		var jqObjs = $(initConfig.validobjectids);
		jqObjs.each(function(i,elem){
			if(elem.settings[0].bind){
					returnObj = $.formValidator.oneIsValid(elem.id,1);
					if(returnObj!=null){
						if(returnObj.isvalid==false){
							iValid = 0;
						}
					}
			}
			/////
			if(returnObj)
			{ 
				var tipid = elem.settings[0].tipid;
				//校验失败,获取第一个发生错误的信息和ID  表单下的错误信息提示
				if (!returnObj.isvalid) {
					isvalid = false;
					if (thefirstid == ""){
						thefirstid = returnObj.id;
						thefirsterrmsg = (returnObj.errormsg==""?returnObj.setting.onerror:returnObj.errormsg)
					}
				}
				//为了解决使用同个TIP提示问题:后面的成功或失败都不覆盖前面的失败
				if (!initConfig.alertmessage){
					if (error_tip.indexOf("^" + tipid + "^") == -1) {
						if (!returnObj.isvalid) {
							error_tip = error_tip + tipid + "^";
						}
						$.formValidator.showMessage(returnObj);
					}
				}
			}
			if(!isvalid)
			{ // 弹出第一个错误提示信息 
				var obj = $("#"+thefirstid).get(0);
				initConfig.onerror(thefirsterrmsg,obj);
				if(thefirstid!="" && initConfig.errorfocus){$("#"+thefirstid).focus();}
			}
			////// 只验证 不提交 
		});
		return iValid;
	},
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics