论坛首页 Web前端技术论坛

配置超简单的Jquery form validate验证框架(修改与扩展)

浏览 29923 次
精华帖 (0) :: 良好帖 (13) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-05-10  
这个链接是0.1版本的

ms这个最新的也就0.4
http://github.com/appden/jquery-formcheck

感觉还不完善啊..
文档demo什么的全部没有..

楼上用过么? 给点资料吧
0 请登录后投票
   发表时间:2010-05-10  

promptPosition: "topRight", // OPENNING BOX POSITION, IMPLEMENTED: topLeft, topRight, bottomLeft, centerRight, bottomRight

success : false,

successClass:'success-field',//我想添加一个校验成功的样式进去不知道怎么添加啊!

beforeSuccess :  function() {},

failure : function() {},

showArray:true, //bluespring修改 添加是否显示提示箭头,默认不显示

showOnMouseOver:true, //bluespring修改 提示信息是否在鼠标移上去时才显示,默认为是

errorClass:'error-field' //bluepsirng修改 提供效验出错时的field样式定制,必须在showOnMouseOver为true时才有用

 

 

 

我想参照你的errorClass那样增加一个成功后的样式上面的红色的那样的是不对不知道搂住有办法吗?

0 请登录后投票
   发表时间:2010-05-11  
自己写一个不就结了
/**
 * 应用程序的顶级名字空间
 */
xu.pkg('xu.app');

xu._class.create('xu.verify','Form' ,null ,{
	desc: 'form verify' ,flds_rules: null ,fm: null ,
	init: function(fm){this.fm=fm;this.flds_rules={}} ,
	add_rules: function(fld,rules){
		if (fld && xu.verify._obj(rules))
			this.flds_rules[fld] = rules ;
	} ,	
	exec: function(){
		if(!this.fm) return false ;var _this = this;
		var errors = {} ;var errnum = 0 ;
		xu.array.each(this.fm.elements,function(item,index){
			if (xu.verify._undef(item.value)) return  
				
			var rules = _this.flds_rules[item.name];
			if (rules && rules.length){
				for (var i = 0; i < rules.length; i++){
					var rule = rules[i];
					if (xu.verify._arr(rule) && rule.length>2){
						if (!xu.verify[rule[0]]) {errnum++;
							errors[item.name] = 'Rule: ['+rule[0] + '] Not Define';
							break ;
						}						
						else {
							var value = item.value || '' ;
							if (xu.verify[rule[0]](value.trim()) == rule[1]){
								errnum++;
								errors[item.name] = rule[2];break ;
							}
						}
					}
				}
			}				
		});
		return errnum ? errors : null;
	}
});



demo:
fm_verify: function(fm){
		if (!this._fvy){
			this._fvy = new xu.verify.Form();
			this._fvy.init(fm);
			
			this._fvy.add_rules('menu[name]',[
				['_require',false,'菜单名称不能为空'],['_schar_nospace',true,'菜单名称不能包含特殊字符']
			]);
			this._fvy.add_rules('menu[udi]',[['_require',false,'UDI标识不能为空']]);
			this._fvy.add_rules('menu[displayorder]',[
				['_require',false,'显示次序不能为空'],	['_int',false,'显示次序必须是整数'],
			]);
			this._fvy.add_rules('menu[parent_id]',[['_require',false,'顶级菜单不能为空']]);
			this._fvy.add_rules('menu[tg]',[['_require',false,'顶级菜单不能为空']]);
			this._fvy.add_rules('menu[group]',[['_require',false,'菜单组不能为空']]);
			
			
			this._fvy.add_rules('menu[alert]',[
				['_require',false,'功能简要不能为空'],['_schar_nospace',true,'功能简要不能包含特殊字符']
			]);
		}
		// 先设置为null
		xu.array.each(fm.elements,function(item){
			var errobj = $ID(item.name+'_error');
			if (errobj) errobj.innerHTML = '';
		});
		
		var errors = this._fvy.exec();
		if (!errors) return true ;log(errors);
		for(var p in errors){
			$ID(p+'_error').innerHTML = errors[p];
		}
		return false ;
	} ,	
0 请登录后投票
   发表时间:2010-05-11  
楼主有没用过这个插件和回调得到 struts2 返回的json数据?我现在老是碰到提示下载action的问题。下载后打开就是要返回的json数据
0 请登录后投票
   发表时间:2010-05-11  
楼主能不能写个返回action 回调的json数据的实例呀?我想结合jquery.form.js中的 ajaxSubmit这块功能
0 请登录后投票
   发表时间:2010-05-13  
当用ajax验证成功后errorClass这个怎么显示出来了不知道那里错了

  • 大小: 2.2 KB
0 请登录后投票
   发表时间:2010-05-20  
现在要做一个同时验证用户名/邮箱的 不知道怎么弄 demo上的是 验证email的话如果输入用户名肯定是错的了
0 请登录后投票
   发表时间:2010-07-07  
这两天正在找一js的表单验证框架,感觉这个还不错下来用用,有什么建议在发给楼主吧。
现在感觉如果可以是验证对于html无侵入就更好了。
0 请登录后投票
   发表时间:2010-07-08  

发现Close all prompt功能不可以将全部提示的红框删除,我修改了一效果对了,但不知对代码是否有影响。发上来大家看看吧。

closePrompt : function(caller,outside) {						// CLOSE PROMPT WHEN ERROR CORRECTED
		if(!$.validationEngine.settings){
			$.validationEngine.defaultSetting()
		}
		if(outside){
			//bluespring修改 
			if($.validationEngine.settings.showOnMouseOver){
				// Quentin 修改,无法全部去掉红色边框的bug 
				for (var i = 0; i < $(caller).size(); i++){
					$(caller).get(i).validateField.removeClass($.validationEngine.settings.errorClass).unbind('mouseover',$.validationEngine.showTip).unbind('mouseout',$.validationEngine.hideTip);
				}
				//$(caller).get(0).validateField.removeClass($.validationEngine.settings.errorClass).unbind('mouseover',$.validationEngine.showTip).unbind('mouseout',$.validationEngine.hideTip);
				$(caller).remove();
			}else{
				$(caller).fadeTo("fast",0,function(){
					$(caller).remove();
				});
			}
			return false;
		}

 改的就是注释中的地方,不知会不会对其他地方用影像,楼主看看吧。

0 请登录后投票
   发表时间:2010-07-09  
验证身份证的规则怎么整合进去啊?之前的都是"regex":"/^[a-zA-Z\u4E00-\u9FA5]+[a-zA-Z0-9_\u4E00-\u9FA5]+$/",
这样就可以但是身份证的校验必须通过
//身份证正则表达式(15位)
isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//身份证正则表达式(18位)
isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
地区、性别和身份证进行判断的正则表达式:
<script>
var
aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"

安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州"

,53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}

function cidInfo(sId){
var iSum=0
var info=""
if(!/^\d{17}(\d|x)$/i.test(sId))return false;
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区";
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,"/"))
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
if(iSum%11!=1)return "Error:非法证号";
return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}

这种来做
楼主知道怎么整合进去吗?
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics