📄 form.js
字号:
$('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 + -