⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formvalidator.js

📁 基于JQuery的表单验证脚本程序 基于JQuery的表单验证脚本程序
💻 JS
📖 第 1 页 / 共 2 页
字号:

	RegexValid : function(id, setting)
	{
		var srcTag = $("#"+id).get(0).tagName;
		var elem = $("#"+id).get(0);
		if(elem.settings[0].empty && elem.value==""){
			setting.isValid = true;
		}
		else 
		{
			var regexpress = setting.regexp;
			if(setting.datatype=="enum") regexpress = eval("regexEnum."+regexpress)
			if(regexpress==undefined || regexpress==""){
				setting.isValid = false;
				return;
			}
			var exp = new RegExp(regexpress, setting.param);
			if (exp.test($("#"+id).val())) 
				setting.isValid = true;
			else 
				setting.isValid = false;
		}
	},
	
	InputValid : function(id, setting)
	{
		var srcjo = $("#"+id);
		var elem = srcjo.get(0);
		var val = srcjo.val();
		var sType = elem.type;
		var len = $.formValidator.GetLength(id);
		switch(sType)
		{
			case "text":
			case "hidden":
			case "password":
			case "textarea":
			case "file":
			case "checkbox":
			case "radio": 
				if (setting.type == "size") {
					if (len < setting.min || len > setting.max) {
						setting.isValid = false;
					}
					else {
						setting.isValid = true;
					}
				}
				else{
					stype = (typeof setting.min);
					if(stype =="number")
					{
						if(!isNaN(val))
						{
							nval = parseFloat(val);
							if(nval>=setting.min && nval<= setting.max)
								setting.isValid = true;
							else
								setting.isValid = false;
						}
						else
							setting.isValid = false;
					}
					if(stype =="string"){
						if(val>=setting.min && val<= setting.max)
							setting.isValid = true;
						else
							setting.isValid = false;
					}
				}
				break;
		    case "select-one":
				if(len > 0)
					setting.isValid =true; 
				else
					setting.isValid =false; 
				break;
		    case "select-more":
                break;
		}
	},
	
	CompareValid : function(id, setting)
	{
		var srcjo = $("#"+id);
	    var desjo = $("#"+setting.desID );
	    setting.isValid = false;
		curvalue = srcjo.val();
		ls_data = desjo.val();
		if(setting.datatype=="number")
        {
            if(!isNaN(curvalue) && !isNaN(ls_data))
			{
				curvalue = parseFloat(curvalue);
                ls_data = parseFloat(ls_data);
			}
			else
			{
			    return;
			}
        }
		
	    switch(setting.operateor)
	    {
	        case "=":
	            if(curvalue == ls_data) setting.isValid = true;
	            break;
	        case "!=":
	            if(curvalue != ls_data) setting.isValid = true;
	            break;
	        case ">":
	            if(curvalue > ls_data) setting.isValid = true;
	            break;
	        case ">=":
	            if(curvalue >= ls_data) setting.isValid = true;
	            break;
	        case "<": 
	            if(curvalue < ls_data) setting.isValid = true;
	            break;
	        case "<=":
	            if(curvalue <= ls_data) setting.isValid = true;
	            break;
	        case "oneok":
	            if($.formValidator.IsEmpty(id) || $.formValidator.IsEmpty(IsEmpty.desID) )
	                setting.isValid = false;
	            else
	                setting.isValid = true;
	    }
	}
};

$.fn.formValidator = function( msgOptions) 
{
	var setting = 
	{
		validatorGroup : "1",
		empty :false,
		submitonce : false,
		automodify : false,
		entermovetonext : true,
		onshow :"请输入内容",
		onfocus: "请输入内容",
		oncorrect: "输入正确",
		onempty: "输入内容为空",
		onvalid : function(){return true},
		onfocusevent : function(){},
		onblurevent : function(){},
		tipid : this.get(0).id+"Tip",
		defaultvalue : null,
		validateType : "InitValidator"
	};
	msgOptions = msgOptions || {};
	$.extend(setting, msgOptions);
	return this.each(function()
	{
		var triggerID = this.id;
		var tip = $( "#"+setting.tipid );
		$.formValidator.appendValid(triggerID,setting);
		if(!$.formValidator.getInitConfig(setting.validatorGroup).alertMessage){
			$.formValidator.SetTipState(setting.tipid,"onShow",setting.onshow);
		}
		var srcTag = this.tagName;
		var defaultValue = setting.defaultvalue;
		if (srcTag == "INPUT" || srcTag=="TEXTAREA")
		{
			var stype = this.type;
			var joeach = $(this);
			if (stype == "checkbox" || stype == "radio") {
				joeach = $("input[@name=" + this.name + "]");
				if(defaultValue)
				{
					checkobj = $("input[@name=" + this.name + "][@value='"+defaultValue+"']");
					if(checkobj.length==1) checkobj.attr("checked","true");
				}
			}
			else
			{
			    if(defaultValue) joeach.val(setting.defaultvalue);
			}
			joeach.focus(function()
			{	
				var settings = joeach.get(0).settings;
				if(!$.formValidator.getInitConfig(settings[0].validatorGroup).alertMessage){
				    $.formValidator.SetTipState(settings[0].tipid,"onFocus",settings[0].onfocus);
				}
				if (stype == "password" || stype == "text" || stype == "textarea" || stype == "file") {
					this.validoldvalue = $(this).val();
				}
				settings[0].onfocusevent(joeach.get(0));
			});

			joeach.blur(function()
			{   
				var elem = joeach.get(0);
				var thefirstsettings = elem.settings;
				var settingslen = thefirstsettings.length;
				var returnObj = $.formValidator.OneIsValid(triggerID,1);
				if(returnObj.ajax >= 0 && elem.validoldvalue!=$(elem).val()) 
				{
			        $.formValidator.SetTipState(thefirstsettings[0].tipid,"onLoad",thefirstsettings[returnObj.ajax].onwait);
				    $.formValidator.AjaxValid(triggerID, thefirstsettings[returnObj.ajax]);
				}
				else
				{
				    if(!returnObj.additional) $.formValidator.ShowMessage(returnObj);
					if(!returnObj.isValid)
					{
						var auto = thefirstsettings[0].automodify && (elem.type=="text" || elem.type=="textarea" || elem.type=="file")
						if(auto && !$.formValidator.getInitConfig(thefirstsettings[0].validatorGroup).alertMessage)
						{
							alert(returnObj.setting.onerror);
							$.formValidator.SetTipState(thefirstsettings[0].tipid,"onShow",setting.onshow);
						}
					}
				}
				thefirstsettings[0].onblurevent(joeach.get(0));
			});
		} 
		else if (srcTag == "SELECT")
		{
		    srcjo = $(this);
		    var settings = this.settings;
		    if (defaultValue)
		    {			 
			    $.each( this.options ,function(){	
				    if ( this.value==defaultValue) this.selected = true;		  
			    });				  
		    }

			srcjo.focus(function()
			{	
				if(!$.formValidator.getInitConfig(setting.validatorGroup).alertMessage){
				    $.formValidator.SetTipState(settings[0].tipid,"onFocus",settings[0].onfocus);
				}
			});
			
			srcjo.bind( "change" , function()
			{
				var returnObj = $.formValidator.OneIsValid(triggerID,1);	 
				if ( returnObj.ajax >= 0 && this.validoldvalue!=$(this).val()) {
				    $.formValidator.AjaxValid(triggerID, returnObj.setting);
				}
				else{
					if(!returnObj.additional) $.formValidator.ShowMessage(returnObj);    
				}
			});
		}
	});

}; 

$.fn.InputValidator = function(controlOptions)
{
	var settings = 
	{
		isValid : false,
		min : 0,
		max : 99999999999999,
		forceValid : false,
		type : "size",
		defaultValue:null,
		onerror:"输入错误",
		validateType:"InputValidator"
	};
	controlOptions = controlOptions || {};
	$.extend(settings, controlOptions);
	return this.each(function(){
		$.formValidator.appendValid(this.id,settings);
	});
};

$.fn.SelectValidator = function(controlOptions)
{
	var settings = 
	{
		isValid : false,
		onerror:"必须选择",
		defaultValue:null,
		validateType:"SelectValidator"
	};
	controlOptions = controlOptions || {};
	$.extend(settings, controlOptions);
	return this.each(function(){
		$.formValidator.appendValid(this.id,settings);
	});
};

$.fn.CompareValidator = function(controlOptions)
{
	var settings = 
	{
		isValid : false,
		desID : "",
		operateor :"=",
		onerror:"输入错误",
		validateType:"CompareValidator"
	};
	controlOptions = controlOptions || {};
	$.extend(settings, controlOptions);
	return this.each(function(){
		var li_index = $.formValidator.appendValid(this.id,settings);
		/*if(li_index==-1) return;
		var elem = this;
		$("#"+settings.desID).blur(function(){
			var returnObj = $.formValidator.OneIsValid(elem.id,1);
			if (!returnObj.isValid && returnObj.setting.index == li_index) {
				var returnObj = $.formValidator.OneIsValid(elem.id, li_index);
			}
			if ( returnObj.ajax >= 0 && this.validoldvalue!=$(this).val()) {
			    $.formValidator.AjaxValid(triggerID, returnObj.setting);
			}
			else{
				if(!returnObj.additional) $.formValidator.ShowMessage(returnObj);
			}
		});*/
	});
};

$.fn.RegexValidator = function(controlOptions)
{
	var settings = 
	{
		isValid : false,
		regexp : "",
		param : "i",
		datatype : "string",
		onerror:"输入的格式不正确",
		validateType:"RegexValidator"
	};
	controlOptions = controlOptions || {};
	$.extend(settings, controlOptions);
	return this.each(function(){
		$.formValidator.appendValid(this.id,settings);
	});
};

$.fn.AjaxValidator = function(controlOptions)
{
	var settings = 
	{
		isValid : false,
		lastValid : "",
		type : "GET",
		url : "",
		addidvalue : true,
		datatype : "html",
		data : "",
		async : true,
		beforesend : function(){return true;},
		success : function(){return true;},
		complete : function(){},
		processdata : false,
		error : function(){},
		onerror:"服务器校验没有通过",
		onwait:"正在等待服务器返回数据",
		validateType:"AjaxValidator"
	};
	controlOptions = controlOptions || {};
	$.extend(settings, controlOptions);
	return this.each(function()
	{
		$.formValidator.appendValid(this.id,settings);
	});
};

$.fn.DefaultPassed = function()
{
	return this.each(function()
	{
		var settings = this.settings;
		for ( var i = 1 ; i < settings.length ; i ++ )
		{   
			settings[i].isValid = true;
			$.formValidator.SetTipState(settings[0].tipid,"onSuccess",settings[0].oncorrect);
		}
	});
};

})(jQuery);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -