/* ============================================================
* jquery.validate.regpersonal.js 个人注册验证
* ============================================================ */
(function($) {
'use strict';
function IsRegistered(value, element) {
var result = false, eletype = element.name;
$.ajax({
url: person_check_url,
cache: false,
async: false,
type: 'post',
dataType: 'json',
data: { type: eletype, param: value },
success: function(json) {
result = true;
}
});
return result;
}
// 自定义验证方法,验证是否被注册
$.validator.addMethod('IsRegistered', IsRegistered, '已被注册');
function IsCard(value, element) {
var result = false, eletype = element.name;
$.ajax({
url: person_check_url,
cache: false,
async: false,
type: 'post',
dataType: 'json',
data: { type: eletype, param: value },
success: function(json) {
result = true;
}
});
return result;
}
// 自定义验证方法,验证是否被注册
$.validator.addMethod('IsCard', IsCard, '身份证已被使用');
function IsCardVali(value, element) {
var result = false, eletype = element.name;
$.ajax({
url: person_check_url,
cache: false,
async: false,
type: 'post',
dataType: 'json',
data: { type: eletype, param: value ,vail:1},
success: function(json) {
result = true;
}
});
return result;
}
// 自定义验证方法,验证是否被注册
$.validator.addMethod('IsCardVali', IsCardVali, '身份证格式错误');
// 若检测到手机号存在则提示解绑原账号or更换新手机
$('input[name=mobile]').blur(function () {
var currentValue = $(this).val();
if (currentValue.length >= 11) {
if(regularMobile.test(currentValue) && !IsRegistered(currentValue, this)) {
$('.had-remind').show();
$('#btnMoilbPhoneRegister').attr('disabled','disabled').addClass("btn_disabled");
$('#unbind_mobile').val(1);
} else {
$('.had-remind').hide();
$('#btnMoilbPhoneRegister').attr('disabled',false).removeClass("btn_disabled");
$('#unbind_mobile').val(0);
}
} else {
$('.had-remind').hide();
$('#unbind_mobile').val(0);
}
});
$('#J_change_mobile').live('click', function () {
window.location.reload();
});
$('#J_login').live('click', function () {
window.location.href = login_url;
});
// 获取后台注册验证配置
var config_varify_reg = eval($('#J_config_varify_reg').val());
var verifyPhoto = false;
// 图片验证码发送短信
function verifyPhotoDialogSms() {
var verifyCodeDialog = $(this).dialog({
title: '请输入下图中的文字或字母',
content: [
'
',
'
).getTime() + ')
',
'
',
'
'
].join(''),
btnOne: true,
loadFun: function() {
$('.dia-captcha-img').die().live('click', function() {
$(this).attr('src', qscms.root + '?m=Home&c=captcha&a=captcha&t=' + (new Date()).getTime());
})
},
yes: function() {
var currentPhotoVal = $.trim($('.dia-captcha-solution').val());
if (currentPhotoVal.length) {
$.ajax({
url: qscms.root + '?m=Home&c=captcha&a=captchaCode',
cache: false,
async: false,
type: 'post',
dataType: 'json',
data: { postcaptcha: currentPhotoVal },
success: function(result) {
if (result.status) {
verifyCodeDialog.hide();
toSetSms();
} else {
disapperTooltip("remind", '验证码输入错误');
}
}
});
} else {
$('.dia-captcha-solution').focus();
disapperTooltip("remind", '请输入文字或字母');
}
}
})
verifyCodeDialog.setCloseDialog(false);
}
// 图片验证码手机注册
function verifyPhotoDialogMobile() {
var verifyCodeDialog = $(this).dialog({
title: '请输入下图中的文字或字母',
content: [
'',
'
).getTime() + ')
',
'
',
'
'
].join(''),
btnOne: true,
loadFun: function() {
$('.dia-captcha-img').die().live('click', function() {
$(this).attr('src', qscms.root + '?m=Home&c=captcha&a=captcha&t=' + (new Date()).getTime());
})
},
yes: function() {
var currentPhotoVal = $.trim($('.dia-captcha-solution').val());
if (currentPhotoVal.length) {
$.ajax({
url: qscms.root + '?m=Home&c=captcha&a=captchaCode',
cache: false,
async: false,
type: 'post',
dataType: 'json',
data: { postcaptcha: currentPhotoVal },
success: function(result) {
if (result.status) {
verifyCodeDialog.hide();
regPerByMobileHandler();
} else {
disapperTooltip("remind", '验证码输入错误');
}
}
});
} else {
$('.dia-captcha-solution').focus();
disapperTooltip("remind", '请输入文字或字母');
}
}
})
verifyCodeDialog.setCloseDialog(false);
}
// 图片验证码邮箱注册
function verifyPhotoDialogEmail() {
var verifyCodeDialog = $(this).dialog({
title: '请输入下图中的文字或字母',
content: [
'',
'
).getTime() + ')
',
'
',
'
'
].join(''),
btnOne: true,
loadFun: function() {
$('.dia-captcha-img').die().live('click', function() {
$(this).attr('src', qscms.root + '?m=Home&c=captcha&a=captcha&t=' + (new Date()).getTime());
})
},
yes: function() {
var currentPhotoVal = $.trim($('.dia-captcha-solution').val());
if (currentPhotoVal.length) {
$.ajax({
url: qscms.root + '?m=Home&c=captcha&a=captchaCode',
cache: false,
async: false,
type: 'post',
dataType: 'json',
data: { postcaptcha: currentPhotoVal },
success: function(result) {
if (result.status) {
verifyCodeDialog.hide();
regPerByEmailHandler();
} else {
disapperTooltip("remind", '验证码输入错误');
}
}
});
} else {
$('.dia-captcha-solution').focus();
disapperTooltip("remind", '请输入文字或字母');
}
}
})
verifyCodeDialog.setCloseDialog(false);
}
// 点击获取验证码先判断是否输入了手机号
$('#J_getverificode').click(function() {
var mobileValue = $.trim($('#mobile').val());
var unbindMobile = $.trim($('#unbind_mobile').val());
// 获取后台发送验证码配置
var captcha_open = eval($('#J_captcha_open').val());
if (mobileValue == '') {
disapperTooltip("remind", "请输入手机号码");
$('#mobile').focus();
return false;
};
if (mobileValue != "" && !regularMobile.test(mobileValue)) {
disapperTooltip("remind", "请输入正确的手机号码");
$('#mobile').focus();
return false;
}
if(unbindMobile == '1'){
disapperTooltip("remind", "该手机号已被注册");
} else {
if (captcha_open) {// 后台开启验证
if (verifyPhoto) {// 图片验证码
verifyPhotoDialogSms();
} else {// 极验
$("#btnCheck").click();
}
} else {// 后台未开启验证
toSetSms();
}
}
});
// 个人手机注册验证程序
$("#regMobileForm").validate({
submitHandler: function(form) {
if (!$('#regMobileForm input[name="agreement"]').is(':checked')) {
disapperTooltip("remind", '请同意注册协议');
return false;
}
if (config_varify_reg) {// 开启注册验证
if (verifyPhoto) {// 图片验证码
verifyPhotoDialogMobile();
} else {// 极验
$("#btnCheckMobile").click();
}
} else {// 未开启注册验证
regPerByMobileHandler();
}
},
rules: {
/*id_card: {
required: true,
IsCardVali:true,
IsCard: true,
},*/
mobile: {
required: true,
match: regularMobile,
//IsRegistered: true
},
mobile_vcode: {
required: true,
match: /\d{6}$/
},
password: {
required: true,
rangelength: [6, 16]
},
password_confirmation: {
required: true,
rangelength: [6, 16],
equalTo: "#password"
}
},
messages: {
/*id_card: {
required: '请输入身份证号码
',
IsCardVali: '身份证格式错误
',
IsCard: '该身份证已被注册
',
},*/
mobile: {
required: '请输入手机号码
',
match: '手机号格式不正确
',
//IsRegistered: '该手机号已被注册
'
},
mobile_vcode: {
required: '请输入验证码
',
match: '手机验证码为6位纯数字
'
},
password: {
required: '请输入密码
',
rangelength: '密码长度要求为6-16个字符
'
},
password_confirmation: {
required: '请输入确认密码
',
rangelength: '密码长度要求为6-16个字符
',
equalTo: '两次输入的密码不一致
'
}
},
errorClasses: {
/*id_card: {
required: 'tip err',
IsCardVali: 'tip err',
IsCard: 'tip err',
},*/
mobile: {
required: 'tip err',
match: 'tip err',
//IsRegistered: 'tip err'
},
mobile_vcode: {
required: 'tip err',
match: 'tip err'
},
password: {
required: 'tip err',
rangelength: 'tip err',
match: 'tip err'
},
password_confirmation: {
required: 'tip err',
rangelength: 'tip err',
equalTo: 'tip err'
}
},
tips: {
/*id_card: '请输入正确的身份证号码
',*/
mobile: '手机号可用于登录网站和找回密码
',
mobile_vcode: '请输入手机验证码
',
password: '密码由6-16个数字、字母和符号组成
',
password_confirmation: '请再次输入密码
'
},
tipClasses: {
IsCardVali: 'tip',
/*id_card: 'tip',*/
mobile: 'tip',
mobile_vcode: 'tip',
password: 'tip',
password_confirmation: 'tip'
},
errorElement: 'div',
errorPlacement: function(error, element) {
if (element.attr('name') == 'mobile_vcode') {
element.closest('.J_validate_group').find('.J_showtip_box').append(error);
} else {
element.closest('.J_validate_group').find('.J_showtip_box').append(error);
}
},
success: function(label) {
label.append('');
}
});
// 个人邮箱注册验证程序
$("#regEmailForm").validate({
submitHandler: function(form) {
if (!$('#regEmailForm input[name="agreement"]').is(':checked')) {
disapperTooltip("remind", '请同意注册协议');
return false;
}
if (config_varify_reg) {// 后台开启注册验证
if (verifyPhoto) {// 图片验证码
verifyPhotoDialogEmail();
} else {// 极验
$("#btnCheckEmail").click();
}
} else {// 后台未开启注册验证
regPerByEmailHandler();
}
},
rules: {
username: {
required: true,
match: regularUsername,
IsRegistered: true,
},
/*id_card: {
required: true,
IsCardVali:true,
IsCard: true,
},*/
email: {
required: true,
email: true,
IsRegistered: true,
},
password: {
required: true,
rangelength: [6, 20]
},
password_confirmation: {
required: true,
rangelength: [6, 20],
equalTo: "#email_password"
}
},
messages: {
username: {
required: '请输入用户名
',
match: '字母开头,长度为6~16个数字或字母
',
IsRegistered: '该用户名已被注册
',
},
/*id_card: {
required: '请输入身份证号码
',
IsCardVali: '身份证格式错误
',
IsCard: '该身份证已被注册
',
},*/
email: {
required: '请输入邮箱
',
email: '邮箱格式不正确
',
IsRegistered: '该邮箱地址已被注册,请尝试登录
',
},
password: {
required: '请输入密码
',
rangelength: '密码长度要求为6-20个字符
'
},
password_confirmation: {
required: '请输入确认密码
',
rangelength: '密码长度要求为6-20个字符
',
equalTo: '两次输入的密码不一致
'
}
},
errorClasses: {
username: {
required: 'tip err',
match: 'tip err',
IsRegistered: 'tip err',
},
/*id_card: {
required: 'tip err',
IsCardVali: 'tip err',
IsCard: 'tip err',
},*/
email: {
required: 'tip err',
email: 'tip err',
IsRegistered: 'tip err',
},
password: {
required: 'tip err',
rangelength: 'tip err'
},
password_confirmation: {
required: 'tip err',
rangelength: 'tip err',
equalTo: 'tip err'
}
},
tips: {
/*id_card: '请输入正确的身份证号码
',*/
username: '字母开头,长度为6~16个数字或字母
',
email: '邮箱用于接收简历及系统重要通知
',
password: '6-20位字符组成,区分大小写
',
password_confirmation: '请再次输入密码
'
},
tipClasses: {
username: 'tip',
IsCardVali: 'tip',
/*id_card: 'tip',*/
email: 'tip',
password: 'tip',
password_confirmation: 'tip'
},
errorElement: 'span',
errorPlacement: function(error, element) {
element.closest('.J_validate_group').find('.J_showtip_box').append(error);
},
success: function(label) {
label.append('');
}
});
var register = {
initialize: function() {
this.initControl();
},
initControl: function() {
// 手机注册提交
$('#btnMoilbPhoneRegister').die().live('click', function() {
$(this).submitForm({
beforeSubmit: $.proxy(frmMobilValid.form, frmMobilValid),
success: function(data) {
if (data.status) {
window.location.href = data.data.url;
} else {
$('#btnMoilbPhoneRegister').val('注册').removeClass('btn_disabled').prop('disabled', 0);
disapperTooltip("remind", data.msg);
}
},
clearForm: false
});
if (frmMobilValid.valid()) {
$('#btnMoilbPhoneRegister').val('注册中...').addClass('btn_disabled').prop('disabled', !0);
}
return false;
});
// 邮箱注册提交
$('#btnEmailRegister').die().live('click', function() {
$(this).submitForm({
beforeSubmit: $.proxy(frmEmailValid.form, frmEmailValid),
success: function(data) {
if (data.status) {
window.location.href = data.data.url;
} else {
$('#btnEmailRegister').val('注册').removeClass('btn_disabled').prop('disabled', 0);
disapperTooltip("remind", data.msg);
}
},
clearForm: false
});
if (frmEmailValid.valid()) {
$('#btnEmailRegister').val('注册中...').addClass('btn_disabled').prop('disabled', !0);
}
return false;
});
}
}
// 发送手机验证码
function toSetSms(geet_result) {
function settime(countdown) {
if (countdown == 0) {
$('#J_getverificode').prop("disabled", 0);
$('#J_getverificode').removeClass('btn_disabled hover');
$('#J_getverificode').val('获取验证码');
countdown = 180;
return;
} else {
$('#J_getverificode').prop("disabled", !0);
$('#J_getverificode').addClass('btn_disabled');
$('#J_getverificode').val('重新发送' + countdown + '秒');
countdown--;
}
setTimeout(function() {
settime(countdown)
},1000)
}
$('#J_getverificode').prop("disabled", !0);
$('#J_getverificode').addClass('btn_disabled');
$('#J_getverificode').val('发送中...');
geet_result.mobile= $.trim($('#mobile').val());
geet_result.type= "register";
$.ajax({
url: sms_url,
type: 'POST',
dataType: 'json',
data: geet_result,
success: function (data) {
// console.log(data);
setTimeout(function() {
disapperTooltip("success", "验证码已发送,请注意查收");
// 开始倒计时
var countdowns = 180;
settime(countdowns);
},800)
},
error: function (data) {
$('#J_getverificode').prop("disabled", 0);
$('#J_getverificode').removeClass('btn_disabled hover');
$('#J_getverificode').val('获取验证码');
var error_obj=eval('(' + data.responseText + ')');
if (data.status==422) {//验证错误
$.each(error_obj.errors,function (key,val) {
disapperTooltip("remind", val[0]);
});
} else if(data.status==400) {//业务错误
disapperTooltip("remind",error_obj.message);
}
}
});
}
// 个人手机注册处理程序
function regPerByMobileHandler() {
$('#btnMoilbPhoneRegister').val('注册中...').addClass('btn_disabled').prop('disabled', !0);
$.ajax({
url: person_register_url,
type: 'POST',
dataType: 'json',
data: $('#regMobileForm').serialize(),
success: function (data) {
disapperTooltip("success","注册成功,正在为你跳转..");
setTimeout(function () {
window.location.href = data.data.url;
},1000)
},
error:function(data) {
console.log(data);
var error_obj=eval('(' + data.responseText + ')');
if ($('#regMobileForm input[name="agreement"]').is(':checked')) {
$('#btnMoilbPhoneRegister').val('注册').removeClass('btn_disabled').prop('disabled', 0);
}
if (data.status == 422) {//验证错误
$.each(error_obj.errors, function (key, val) {
disapperTooltip("remind", val[0]);
});
}
else if (data.status == 400) {//业务错误
disapperTooltip("remind", error_obj.message);
}
}
});
}
// 个人邮箱注册处理程序
function regPerByEmailHandler() {
$('#btnEmailRegister').val('注册中...').addClass('btn_disabled').prop('disabled', !0);
$.ajax({
url: person_register_url,
type: 'POST',
dataType: 'json',
data: $('#regEmailForm').serialize(),
success: function (data) {
disapperTooltip("success","注册成功,正在为你跳转..");
setTimeout(function () {
window.location.href = data.data.url;
},1000)
},
error:function(data) {
console.log(data);
var error_obj=eval('(' + data.responseText + ')');
if ($('#regEmailForm input[name="agreement"]').is(':checked')) {
$('#btnEmailRegister').val('注册').removeClass('btn_disabled').prop('disabled', 0);
}
if (data.status == 422) {//验证错误
$.each(error_obj.errors, function (key, val) {
disapperTooltip("remind", val[0]);
});
}
else if (data.status == 400) {//业务错误
disapperTooltip("remind", error_obj.message);
}
}
});
}
// 配置极验
if (config_varify_reg) {
//手机注册
var handlerRegMobile = function(captchaObj) {
captchaObj.bindForm("#regMobileForm");
captchaObj.onSuccess(function() {
regPerByMobileHandler();
});
captchaObj.onError(function() {
});
$('#btnCheckMobile').on('click', function () {
captchaObj.verify();
});
};
//邮箱注册
var handlerRegEmail = function(captchaObj) {
captchaObj.bindForm("#regEmailForm");
captchaObj.onSuccess(function() {
regPerByEmailHandler();
});
captchaObj.onError(function() {
});
$('#btnCheckEmail').on('click', function () {
captchaObj.verify();
});
};
//发送短信
var handler = function(captchaObj) {
captchaObj.appendTo("#popup-captcha");
captchaObj.onSuccess(function() {
var result = captchaObj.getValidate();
toSetSms(result);
});
captchaObj.onError(function() {
});
$('#btnCheck').on('click', function () {
captchaObj.verify();
});
};
gt_init(handlerRegMobile);
gt_init(handlerRegEmail);
gt_init(handler);
};
})(jQuery);