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

📄 form.js

📁 项目名叫网上图书馆
💻 JS
📖 第 1 页 / 共 3 页
字号:
		$('syscheckcode').value = sText;
	}
}

function errMain(originalRequest){
		alert('请重新提交');
		return false;
}
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 'fReg0'://'fReg1':
					if($F('question')==_myQuestion){reqInputs =['username','password','cpassword','myQuestion','answer','year','male','usercheckcode','agree'];}
					else{reqInputs =['username','password','cpassword','question','answer','year','male','usercheckcode','agree'];}
				break;
				//修改个人信息第一步
				case 'fChginfo0':
				if($('usePassword')){
					if($('usePassword').checked){reqInputs=['password','ppcpass'];}
					else{reqInputs = ['pingma','ppcpass'];}
				} else {reqInputs=['password','ppcpass'];}					
				break;
				//修改个人信息第二步
				case 'fChginfo1':
					reqInputs = [];
					var oInputs = Form.getElements(oForm);
					oInputs.each(function(oInput){
						if($Req(oInput)){
							var oC = new oCheckForm.checkInput($(oInput),{bEmpty:true});					
						}
					});
				break;
				//关联手机
				case 'fBindmob':
				reqInputs = ['password','mobile','ppcpass'];
				break;
				case 'fBindmob2':
				reqInputs = ['username','password'];
				break;
				
			}
			//验证提交时必填项是否为空
			if(reqInputs.length>0){
				reqInputs.each(function(oI){
				if($(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,
		  nickname : 		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.bEmpty && (objId=='agree') && !$('agree').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=='username' ){
			
			var username = $F(opt.sDiffer);
			var pos = username.indexOf("@");
			var ssn;
			if(pos == -1)
				ssn = username;
			else
				ssn = username.substring(0,pos);
				
			
			if(ssn == 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)+\.)+[A-Za-z]{2,}$/.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.nickname){
			 var forbiddenChars = "|+)(×&……%¥#@!~=\}{】【:;?》《、|+)(*&^%$#@!~=\\}{][:;?></";
			 var i; 
			 var c;
			 var nicknamevalid = true;
			 for(i = 0 ; i < forbiddenChars.length; ++i){
				c = (forbiddenChars.substring(i,i + 1));
				if(sValue.indexOf(c) != -1){
					nicknamevalid  = false;
					break;
				}
			 }
			if(!nicknamevalid)
				iMsgId = '4nickname';
		}
		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,
		  male:				true,
		  female:			true,
		  usercheckcode:	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 chginfoMode(useMode,nonuseMode){
	useModeWrap = useMode + 'Wrap';
	nonuseModeWrap = nonuseMode +'Wrap';
	var sInput = useMode.substring(3).toLowerCase();
	var oInput = $(sInput);
	var sInputBlur = nonuseMode.substring(3).toLowerCase();
	var oInputBlur = $(sInputBlur);
	oInputBlur.value ='';
	//var event = null;
	//fClearTip(event,oInput);
	$T(sInputBlur).innerHTML = '';
	oCheckForm.stat.options[sInputBlur]=true;
	oInputBlur.disabled = 'disabled';
	Element.removeClassName(oInputBlur,'inputError');
	oInput.disabled = '';
	Element.addClassName(oInput,'inputFocus');
	oInput.focus();
	$(useMode).checked='checked';
	$(useModeWrap).className='';
	$(nonuseMode).checked='';
	$(nonuseModeWrap).className='chgModeBlur';
}
//选择修改方式
function showHiddenContent(obj){
	var wrap = obj.id + 'Wrap';
	var aCI = [];
	var oWrap = $(wrap);	
	 if(obj.checked){oWrap.style.display='block'}
	 else{
		 if(obj.id=='chgQuestion'){
			 if(!$('oldanswer')){aCI=['question','answer'];}
			 else{aCI=['oldanswer','question','answer'];}
		 }
		 else if(obj.id == 'chgMail'){
			 if($('oldmail')){aCI=['oldmail','mail'];}
			 else{aCI = ['mail'];}
		  }
		 else{aCI=['year','month','day'];}
		 aCI.each(function(sCI){
			oCI = $(sCI);
			var sTag = oCI.tagName.toLowerCase();
			switch(sTag){
				case 'input':
					oCI.value='';
				break;
				case 'select':
					oCI.selectedIndex = 0;
				break;
			}
		 	if(oCI.tagName.toLowerCase()=='input'){oCI.value=''}
			var ci = new oCheckForm.checkInput(oCI,{});
		 });
		 oWrap.style.display='none';
	 }
}
//初始化修改方式
function ifChecked(id){
	if($(id).checked){
		var wrap = id +'Wrap';
		$(wrap).style.display='block';
	}
} 
//获取字符长度
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;
}
//获取url中的参数值
function getParameter(url,name){
		var pos = url.indexOf("?");
		if(pos == -1)
			return "";
		else{
			var result = "";
			var paramString = url.substring(pos + 1);
			if(paramString.length == 0)
				return "";
			else{
				
				var paramArray  = paramString.split("&");
				var i;
				var b = name.concat("=");
				for(i = 0 ; i < paramArray.length; ++i){
					if(paramArray[i].indexOf(b) == 0){
						result = paramArray[i].substring(b.length);
						break;
					}
				}
				return result;
			}
		}
	}
//功能函数 end======================================================================================

⌨️ 快捷键说明

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