var regaction = (function () {
var defaultopts = {
'regform' : 'regfrom',
'username' : 'username',
'userpwd' : 'userpwd',
'confirmpwd' : 'confirmpwd',
'checkcode' : 'checkcode',
'accept' : 'accept',
'errortrips' : 'errortrips',
'channel' : 'channel',
'loginauto' : 'loginauto',
'btnaction' : 'btnaction'
},
isreg = 1;
//去掉空格
function trim(str) {
return str.replace(//s+$|^/s+/g, '');
}
//检测email
function isemail(email) {
return /^[/w/-/.]+@[/w/-/.]+(/./w+)+$/i.test(email)
}
//检测用户名
function checkusername(callback) {
var optsobj = defaultopts;
var nameobj = optsobj.username;
var errortripsobj = optsobj.errortrips;
var value = trim(nameobj.val());
nameobj.val(value);
if (!isemail(value)) {
errortripsobj.html('请输入正确的邮箱地址').css('visibility', 'visible');
nameobj.focus();
if (callback) {
callback(false);
}
} else {
$.ajax({
url : '/index.php?ac=account&op=checkuser',
datatype : 'json',
type : 'post',
data : {
username : value
},
success : function (res) {
if (res) {
switch (res.string) {
case '1':
//errortripsobj.html('该邮箱已经被注册').css('visibility', 'visible');
optsobj.checkcode.hide();
$(#jchkcode).hide();
$(#jprivacy).hide();
$(#jremeberbox).show();
$(#repwd-box).hide();
$(#jhd).text(登录快盘);
$(#jcnt).text(随时随地查看文件);
optsobj.btnaction.val(立即登录);
isreg = 2;
//nameobj.focus();
if (callback) {
//callback(false);
callback(true);
}
nameobj.change(function () {
optsobj.checkcode.show();
$(#jchkcode).show();
$(#jprivacy).show();
$(#jremeberbox).hide();
$(#repwd-box).show();
$(#jhd).text(注册快盘);
$(#jcnt).text(只需5秒,立即拥有15gb空间);
optsobj.btnaction.val(立即注册);
isreg = 1;
});
break;
case '2':
default:
errortripsobj.css('visibility', 'hidden');
if (callback) {
callback(true);
}
}
} else {
if (callback) {
callback(true);
}
}
}
})
}
}
//检测密码
function checkpwd(callback) {
var optsobj = defaultopts;
var userpwd = optsobj.userpwd;
var username = optsobj.username;
var confirmpwd = optsobj.confirmpwd;
var errortripsobj = optsobj.errortrips;
var loginauto = optsobj.loginauto;
var len = trim(userpwd.val()).length;
if (0 == len) {
errortripsobj.html('请填写登录密码').css('visibility', 'visible');
userpwd.focus();
return false;
} else {
if (len < 6 || len > 32) {
errortripsobj.html('密码应在6-32位字符内').css('visibility', 'visible');
userpwd.focus();
return false;
} else {
errortripsobj.css('visibility', 'hidden');
if (isreg === 1) {
var relen = trim(confirmpwd.val()).length;
if (0 == relen) {
errortripsobj.html('请填写重复登录密码').css('visibility', 'visible');
confirmpwd.focus();
return false;
} else {
if (userpwd.val() != confirmpwd.val()) {
errortripsobj.html('两次密码输入不一致').css('visibility', 'visible');
confirmpwd.focus();
return false;
} else {
return true;
}
}
} else {
if (loginauto.attr(checked) === checked) {
loginauto.val(1);
} else {
loginauto.val(0);
}
$.ajax({
url : '/index.php?ac=account&op=login',
type : 'post',
datatype : 'json',
data : {
'username' : username.val(),
'userpwd' : userpwd.val(),
'rememberme' : loginauto.val(),
'isajax' : 'yes'
},
success : function (res) {
if (res.state == 0) {
errortripsobj.html('用户名密码不匹配').css('visibility', 'visible');
userpwd.focus();
return false;
} else {
if(callback) {
location.href = /home.htm ;
}
}
}
});
}
}
}
}
//检测是否接受协议
function checkaccpet() {
var optsobj = defaultopts;
var acceptobj = optsobj.accept;
var errortripsobj = optsobj.errortrips;
if (acceptobj.attr('checked')) {
return true;
} else {
errortripsobj.html('请阅读并接受用户协议').css('visibility', 'visible');
acceptobj.focus();
return false;
}
}
//验证码检测
function checkcode() {
var optsobj = defaultopts;
var checkcodeobj = optsobj.checkcode;
var errortripsobj = optsobj.errortrips;
if (checkcodeobj.length == 1 && == checkcodeobj.val()) {
errortripsobj.html('请输入验证码').css('visibility', 'visible');
checkcodeobj.focus();
return false;
} else {
return true;
}
}
//注册表单提交
function regformsubmit(e, data) {
checkusername(function (f) {
var result, checkpwdresult;
if (isreg === 1) {
defaultopts.regform.attr(action, /index.php?ac=account&op=registerhanlder);
result = f && checkpwd() && checkaccpet() && checkcode();
if (result) {
defaultopts.regform.unbind('submit').submit();
}
} else {
checkpwd( f );
}
});
if (!data) {
return false;
}
}
function bindevent() {
var optsobj = defaultopts;
optsobj.regform.submit($.proxy(regformsubmit, this));
optsobj.username.change(function () {
checkusername();
})
optsobj.userpwd.change($.proxy(checkpwd, this));
if (isreg === 1) {
optsobj.confirmpwd.change($.proxy(checkpwd, this));
}
}
return {
init : function (opts) {
$.each(opts, function (i, n) {
opts[i] = $(# + n);
});
defaultopts = $.extend(defaultopts, opts);
bindevent();
},
checkemailvlaue : function () {
checkusername();
}
};
})();
regaction.init({'regform':'regform','username':'email','errortrips':'erroinfo','userpwd':'pwd','confirmpwd':'re-pwd','accept':'chkaccpet','checkcode':'checkcode','loginauto':'login-auto','btnaction':'jaction'});//初始化
以上就是分享jquery插件--表单验证的详细内容。
