lixin-web
Version:
vue and bootstrap
239 lines (209 loc) • 5.83 kB
JavaScript
$(document).ready(function() {
// 初始化变量
var registForm = $('.regist > .form');
var username = registForm.find('input[name="username"]');
var nickname = registForm.find('input[name="nickname"]');
var email = registForm.find('input[name="email"]');
var password1 = registForm.find('input[name="password1"]');
var password2 = registForm.find('input[name="password2"]');
var registCode = App.getUrl('registCode');
var securityCode = registForm.find('input[name="securityCode"]');
var codeImage = securityCode.parents('.value').find('img');
var registBtn = registForm.find('input[name="regist"]');
var codeImage01 = registForm.find('.form-control .value .refreshi');
// 计算字符长度
var len = function(s) {
var l = 0;
for (var i = 0; i < s.length; i++) {
l += s.charCodeAt(i) > 255 ? 2 : 1;
}
return l;
}
// 验证昵称
var testNickname = function(s) {
var l = len(s);
if(l >= 4 && l <= 12) {
return true;
}
return false;
}
var checkNameExist = function(s) {
error(username, '正在检测中...');
Will.ajax({username: s},'/api/account/check-username-exist', function(response){
if(response == true) {
error(username, '用户名已存在!');
} else {
success(username, '填写正确。');
}
});
}
// 验证用户名
var testUsername = function(s) {
var regex = /^[a-zA-Z]{1}([a-zA-Z0-9]|[_]){5,11}$/;
if(regex.test(s)) {
return true;
}
return false;
}
// 验证邮箱
var testEmail = function(s) {
var regex = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
if(regex.test(s)) {
return true;
}
return false;
}
// 验证密码
var testPassword = function(s) {
var regex = /^(\w){6,20}$/;
if(regex.test(s)) {
return true;
}
return false;
}
var error = function(els, msg) {
$(els).parents('.value').find('.help-inline').removeClass('success').addClass('error').html('<i></i>' + msg);
}
var success = function(els, msg) {
$(els).parents('.value').find('.help-inline').removeClass('error').addClass('success').html('<i></i>' + msg);
}
var validateUsername = function() {
if(username.val() == '') {
error(username, '用户名不能为空!');
return false;
}
if(!testUsername(username.val())) {
error(username, '6-12位首字母开头不能包含特殊字符。');
return false;
}
checkNameExist(username.val());
return true;
}
username.bind('blur', function() {
validateUsername();
});
var validateNickname = function() {
if(nickname.val() == '') {
error(nickname, '用户昵称不能为空!');
return false;
}
if(!testNickname(nickname.val())) {
error(nickname, '4-12个字符或2-6个中文汉字。');
return false;
}
success(nickname, '填写正确。');
return true;
}
nickname.bind('blur', function() {
validateNickname();
});
var validateEmail = function() {
if(email.val() == '') {
return true;
}
if(!testEmail(email.val())) {
error(email, '请填写正确的邮箱例如:lixinyule@gmail.com');
return false;
}
success(email, '填写正确。');
return true;
}
email.bind('blur', function() {
validateEmail();
});
var validatePwd1 = function() {
if(password1.val() == '') {
error(password1, '密码不能为空!');
return false;
}
if(!testPassword(password1.val())) {
error(password1, '6-20位字母、数字或者下划线。');
return false;
}
success(password1, '填写正确。');
return true;
}
password1.bind('blur', function() {
validatePwd1();
});
var validatePwd2 = function() {
if(password2.val() == '') {
error(password2, '请重复上面输入的密码。');
return false;
}
if(password1.val() != password2.val()) {
error(password2, '密码不一致,请注意大小写!');
return false;
}
success(password2, '填写正确。');
return true;
}
password2.bind('blur', function() {
validatePwd2();
});
password2.bind('paste', function() {
return false;
});
// var _registCode = App.getUrl('registCode');
// if (_registCode) {
// registCode.val(_registCode).attr('readonly', true);
// }
var validateCode = function() {
if(securityCode.val() == '') {
Will.error('请填写验证码。');
return false;
}
return true;
}
securityCode.bind('blur', function() {
validateCode();
});
// 刷新验证码
var refreshCode = function() {
codeImage.attr('src', '/api/utils/regist-security-code?' + new Date().getTime());
}
// 验证码点击事件
codeImage.click(function() {
refreshCode();
});
codeImage01.click(function() {
refreshCode();
});
// 注册按钮点击事件
registBtn.click(function() {
if(validateUsername() && validateNickname() && validatePwd1() && validatePwd2() &&
validateCode() && validateEmail()) {
handleRegist();
}
});
var handleRegist = function() {
var data = {
username: username.val(),
password: password1.val(),
nickname: nickname.val(),
email: email.val(),
registCode: registCode,
securityCode: securityCode.val()
}
Will.ajax(data,'/api/regist', function(datas){
// App.confirm('success', '消息提示', '注册成功,是否立即登录?', 10000, '立即登录', '关闭', function() {
// MainCtrl.logout({
// success: function() {
// window.location.href = window.location.protocol + '//' + window.location.host + '/login.html';
// }
// });
// });
Will.question('注册成功,是否立即登录?',[{label:'立即登录',action:function(){
MainCtrl.logout({
success: function() {
window.location.href = window.location.protocol + '//' + window.location.host + '/login.html';
}
});
}}]);
},function(dataa,res){
// refreshCode();
Will.error(res.message);
}
)
}
})