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

📄 form.js

📁 一个已经成形的打折网站,只要添加图片就可以上线运行了
💻 JS
📖 第 1 页 / 共 4 页
字号:
		$('myQuestion').value ='';
	}
}
//自定义问题
function fMyQuestionBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	checkForm = new oCheckForm.checkInput(oEvt,{iMin:6,iMax:30});
}
//问题答案
function fAnswerBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	checkForm = new oCheckForm.checkInput(oEvt,{iMin:6,iMax:30,sDiffer:'question'});
}
//安全码
function fPingmaKeyup(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern = /^[\x00-\xff]+$/;
	checkForm = new oCheckForm.checkInput(oEvt,{iMax:16,sPattern:pattern,sDiffer:'username',sDifferPwd:'password',bPwdStrength:true});
}
function fPingmaBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern = /^[\x00-\xff]+$/;
	checkForm = new oCheckForm.checkInput(oEvt,{iMin:6,iMax:16,sPattern:pattern,sDiffer:'username',sDifferPwd:'password',bPwdStrength:true,bSimplePwd:true});
}
//确认安全码
function fCpingmaBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	checkForm = new oCheckForm.checkInput(oEvt,{sContrast:'pingma'});
}
//保密邮箱
function fMailBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern = /^[a-zA-Z\d]+[\w\.\-@]*$/;
	checkForm = new oCheckForm.checkInput(oEvt,{sPattern:pattern,bEmail:true,bHasEmail:true});
}
//旧邮箱
function fOldmailBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern = /^[a-zA-Z\d]+[\w\.\-@]*$/;
	checkForm = new oCheckForm.checkInput(oEvt,{sPattern:pattern,bEmail:true});
}
//年
function fYearBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern = /^\d+$/;
	checkForm = new oCheckForm.checkInput(oEvt,{iMin:4,iMax:4,sPattern:pattern,bBirthDay:true,bDate:true});
}
//月日
function fDateChange(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	checkForm = new oCheckForm.checkInput(oEvt,{bDate:true});
}
//证件号码
function fIdnumBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	switch($F('idtype')){
		case '0':
			checkForm = new oCheckForm.checkInput(oEvt,{bIdentityCard:true})
		break;
		case '1':
		case '2':
		case '3':
			pattern = /^\S+[\s\S]*\S+$/;
			checkForm = new oCheckForm.checkInput(oEvt,{iMin:6,iMax:18,sPattern:pattern});						
		break;
	}
}
//修改保密邮箱或者密码提示问题
function fChgClick(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	showHiddenContent(oEvt);
}
//姓名
function fFirstnameBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern = /^[^\|\+\)\(\*\\\^\$\!\=\}\{\]\[\:\?\/&%#@;~><'"]+$/;
	checkFrom = new oCheckForm.checkInput(oEvt,{iMax:26,sPattern:pattern});
}
//邮政编码
function fZipcodeBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern = /^\d+$/;
	checkForm = new oCheckForm.checkInput(oEvt,{iMin:3,iMax:16,sPattern:pattern});
}
//联系电话
function fContactnumberBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	checkForm = new oCheckForm.checkInput(oEvt,{bTelephone:true,iMin:5,iMax:20});
}
//地址
function fAddressBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	checkForm = new oCheckForm.checkInput(oEvt,{iMin:2,iMax:66});
}
//刷新安全码
function fRefreshRandomNoClick(){
	var oImg = $('randomNoImg');
	var sId = $F('syscheckcode');
	var aSrc =  oImg.src.split(sId);
	oImg.src = aSrc[0] + sId + '&r=' + (new Date()).getTime();
}
function fAlert(){
	var ele = oCheckForm.stat.first();
	var eleHTML = $T(ele).innerHTML;
	if(eleHTML.indexOf('不能为空')>-1||eleHTML.indexOf('不能和用户名相同')>-1||eleHTML.indexOf('不能和密码相同')>-1||eleHTML.indexOf('不能和安全码相同')>-1||eleHTML.indexOf('未被使用')>-1||eleHTML.indexOf('不能使用该邮箱')>-1||eleHTML.indexOf('请选择')>-1){
		var eleHTML = $(ele).title + eleHTML;
	}
	alert(eleHTML);
	window.location = '#' + ele;
	$(ele).focus();
}
//表单输入验证函数 begin================================================================================

//表单的提交事件函数 begin=================================================================================
//提交表单信息
function fConfirmSubmit(event){
	var sF = $fId(event);
		if(oCheckForm.stat.result()){
			var reqInputs = [];
			var oForm = $(sF);
			switch(sF){
				//注册的第一步
				case 'fReg0':
					reqInputs = ['username'];
				break;
				//注册的第二步
				case 'fReg1':
					if($F('question')==_myQuestion){reqInputs =['password','cpassword','myQuestion','answer','pingma','cpingma','year','idnum','usercheckcode'];}
					else{reqInputs =['password','cpassword','question','answer','pingma','cpingma','year','idnum','usercheckcode'];}
				break;
			}
			//验证提交时必填项是否为空
			if(reqInputs.length>0){
				reqInputs.each(function(oI){
					var oC = new oCheckForm.checkInput($(oI),{bEmpty:true});
				});
			}
			if(oCheckForm.stat.result()){
				oForm.submit();
				return true;		
			}
		}
	fAlert();
}
//表单的提交事件 end====================================================================================

//用户输入验证 begin========================================================================================
var oCheckForm = {};
oCheckForm.checkInput=Class.create();
oCheckForm.checkInput.prototype={
	initialize: function(obj, oOptions) {
		this.setOptions(oOptions);
		this.request(obj);
	},
	setOptions: function(oOptions) {
		this.options = {
		  bEmpty:			false,
		  iMin:				0,
		  iMax: 			0,
		  sPattern_1:		'',
		  sPattern_2:		'',
		  sPattern:			'',
		  sContrast:		'',
		  sDiffer:			'',
		  sDifferPwd:		'',
		  bPwdStrength:		false,
		  bEmail:			false,
		  bBirthDay:		false,
		  bDate:			false,
		  bIdentityCard:	false,
		  bTelephone:		false,
		  bHasEmail:		false,
		  bHasEmailChg:		false,
		  sExistName:		'',
		  bSimplePwd:		false
		}
		Object.extend(this.options, oOptions || {});
	},
	request: function(obj){
		var iMsgId = -1;
		var sValue = obj.value;
		var iLen = strLen(sValue);
		var oTip = $T(obj);
		var objId = obj.id;
		var objType = obj.type.toLowerCase();
		var objTagName = obj.tagName.toLowerCase();
		var opt = this.options;
		
		if(!opt.bEmpty && sValue == ''){iMsgId = 0;}
		else if(!opt.bEmpty && objType=='radio'){iMsgId = -1;}
		else if(opt.bEmpty && objType!='radio' && sValue == ''){
			if(objTagName=='select'){iMsgId = 17;}
			else{iMsgId = 1;}
		}
		else if(opt.sExistName!='' && opt.sExistName == sValue){iMsgId = 5;}
		else if(opt.bEmpty && (objId=='male' || objId=='female') && !$('male').checked && !$('female').checked ){iMsgId = 17;}
		else if(opt.sPattern_1!='' && opt.sPattern_1.test(sValue)){iMsgId = '4username_1';}
		else if(opt.sPattern_2!='' && !opt.sPattern_2.test(sValue)){iMsgId = '4username_2';}
		else if(opt.sPattern!=''&&!opt.sPattern.test(sValue)){iMsgId = '4' + objId;}
		else if(opt.iMin > 0 && opt.iMin > iLen){iMsgId = '3' + objId;}
		else if(opt.iMax > 0 && opt.iMax < iLen){iMsgId = '2' + objId;}
		else if(opt.sContrast!=''&&$F(opt.sContrast)!=sValue){iMsgId = '6' + objId;}
		else if(opt.sDiffer=='username' && $F(opt.sDiffer)==sValue){iMsgId = 13;}
		else if((opt.sDiffer=='question' && $F('question')!='' && $F('question')!=_myQuestion && $F(opt.sDiffer)==sValue)||(opt.sDiffer=='question' && $F('question')==_myQuestion && $F('myQuestion')!='' && $F('myQuestion')==sValue)){iMsgId = 14;}
		else if(opt.sDiffer=='oldanswer' && $F(opt.sDiffer)==sValue){iMsgId = 15;}
		else if(opt.sDiffer=='oldmail' && $F(opt.sDiffer)==sValue){iMsgId = 16;}
		else if(opt.sDifferPwd=='oldpass' && $F(opt.sDifferPwd)==sValue){iMsgId = 7;}
		else if(opt.sDifferPwd=='password' && $F(opt.sDifferPwd)==sValue){iMsgId = 24;}
		else if(opt.bSimplePwd && isSimplePwd(sValue)){iMsgId = '8' + objId;}
		else if(opt.sDifferPwd=='pingma' && $F(opt.sDifferPwd)==sValue){iMsgId = 26;}
		else if(opt.bPwdStrength){iMsgId = PasswordStrength.StrengthLevel(sValue);}
		else if(opt.bEmail && !/^\w+((-\w+)|(\.\w+))*\@[A-Za-z\d]+((\.|-)[A-Za-z\d]+)*\.[A-Za-z\d]+$/.test(sValue)){iMsgId = 34;}
		else if(opt.bBirthDay && iMsgId !=42 && (parseInt(sValue) < 1902 || (new Date(sValue,($F('month')-1),$F('day'))).getTime() >= (tNow.getTime()-24*60*60*1000))){iMsgId = '3year' ;}
		else if(opt.bDate){
			var aMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
			if($F('year') && $F('year')%4==0){aMonthDays[1] = 29;}
			if(aMonthDays[($F('month')-1)]<$F('day')){iMsgId = 42;}
			if(iMsgId != 42 && $F('year') && (new Date($F('year'),($F('month')-1),$F('day'))).getTime() >= (tNow.getTime()-24*60*60*1000)){iMsgId = 42;}
		}
		else if(opt.bIdentityCard){
			var A,D,B
			if(iLen != 15 && iLen != 18){iMsgId = 20;}
			else if(iLen == 15){
				/*
				A = sValue.match(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
				D = new Date('19'+A[2]+'/'+A[3]+'/'+A[4]);
				B = D.getFullYear()==('19'+A[2])&&(D.getMonth()+1)==A[3]&&D.getDate()==A[4];
				*/
				A = sValue.match(/^\d{15}$/);
			}else if(iLen == 18){
				A = sValue.match(/^\d{17}[\dXx]{1}$/);
				/*
				D = new Date(A[2]+'/'+A[3]+'/'+A[4]);
				B = D.getFullYear()==(A[2])&&D.getFullYear()>1900&&D.getFullYear()<tNow.getFullYear()&&(D.getMonth()+1)==A[3]&&D.getDate()==A[4];
				*/
			}
			if(!A){iMsgId = 20;}
		}
		else if(opt.bTelephone && !/^\d+[\-\d]*\d+$/.test(sValue)){iMsgId = 33;}
		else if(opt.bHasEmail && sValue==($F('username')+'@163.com')){iMsgId = 37;}
		else if(opt.bHasEmailChg && sValue==($F('username')+'@163.com')){iMsgId = 38;}
		var detailInfo = String(iMsgId).indexOf(objId) > 0;
		if(iMsgId>0 || detailInfo){
			oTip.innerHTML = aMsg[iMsgId] ? aMsg[iMsgId] : aMsg[iMsgId.substring(0 , iMsgId.indexOf(objId))];
			if(detailInfo){iMsgId = iMsgId.substring(0 , iMsgId.indexOf(objId))} 
			if(iMsgId>12||iMsgId<10){
				oCheckForm.stat.options[objId]=false;
				Element.addClassName(obj,'inputError');
			}else{
				Element.removeClassName(obj,'inputError');
				oCheckForm.stat.options[objId]=true;
			}
		}else{
			if(iMsgId == 0 && oTip.innerHTML == aMsg[1]){return;}
			oCheckForm.stat.options[objId]=true;
			switch(objId){
				case 'male':
					var oId = 'female';
					oCheckForm.stat.options[oId]=true;
				break;
				case 'female':
					var oId = 'male';
					oCheckForm.stat.options[oId]=true;
				break;
			}
			var sHTML = oTip.innerHTML;
			if(sHTML.indexOf('安全程度')>-1){
				Element.removeClassName(obj,'inputError');
				return;
			}else{
				oTip.innerHTML = '';
				Element.removeClassName(obj,'inputError');
			}
		}
	}
}

//验证结果
oCheckForm.stat={
	options: {
		  username:			true,
		  password:			true,
		  cpassword: 		true,
		  oldpass:			true,
		  question:         true,
		  answer:			true,
		  pingma:			true,
		  cpingma:			true,
		  mail:				true,
		  year:				true,
		  idnum:			true,
		  usercheckcode:	true,
		  male:				true,
		  female:			true
	},
	result: function(){
		for(var prop in this.options){
			if(this.options[prop]==false){
				return false;
			}
		}
		return true;
	},
	first: function(){
		for(var prop in this.options){
			if(this.options[prop]==false){
				return prop;
			}
		}
		return document.forms[0].elements[0].id;
	}
}
//用户输入验证 end========================================================================================

//功能函数 begin======================================================================================
//简单密码
var isSimplePwd = function(pwd){
	var b = false;
	var sChar = pwd.charAt(0);
	var sChars = '';
	for(var ii=0;ii<pwd.length;ii++){
		sChars += sChar; 	
	}
	if(pwd == sChars){ return true;}
	var aPwd = ['123456','12345678','123123','1234567','123321','123456789','1234567890','0123456789','0987654321','987654321','123123123','112233','110110','0123456','123465','1234560','121212','111222','321321','654321'];
	for(var i=0;i<aPwd.length;i++){
		if(aPwd[i]==pwd){
			b = true;
			break;
		}
	}
	return b;
}
//判断密码强度
var PasswordStrength ={
	Level : [12,11,10],
	LevelValue : [30,20,0],//强度值
	Factor : [1,2,5],//字符加数,分别为字母,数字,其它
	KindFactor : [0,0,10,20],//密码含几种组成的加数 
	Regex : [/[a-zA-Z]/g,/\d/g,/[^a-zA-Z\d]/g] //字符正则数字正则其它正则
}
PasswordStrength.StrengthValue = function(pwd)
{
	var strengthValue = 0;
	var ComposedKind = 0;
	for(var i = 0 ; i < this.Regex.length;i++)
	{
		var chars = pwd.match(this.Regex[i]);
		if(chars != null)
		{
			strengthValue += chars.length * this.Factor[i];
			ComposedKind ++;
		}
	}
	strengthValue += this.KindFactor[ComposedKind];
	return strengthValue;
} 
PasswordStrength.StrengthLevel = function(pwd)
{
	var sChar = pwd.charAt(0);
	var sChars = '';
	for(var ii=0;ii<pwd.length;ii++){
		sChars += sChar; 	
	}
	if(pwd == sChars){ return 10;}
	var value = this.StrengthValue(pwd);
	for(var i = 0 ; i < this.LevelValue.length ; i ++)
	{
		if(value >= this.LevelValue[i] )
			return this.Level[i];
	}
}
//获取字符长度
function strLen(str){
	var ii=0;
	var strLen = str.length;
	for (var i=0;i<strLen;i++){
		if (str.charCodeAt(i)>255){ii+=2;} 
		else{ii++;}
	}
	return ii;
}
//功能函数 end======================================================================================

⌨️ 快捷键说明

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