/* ============================================================ * 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: [ '
', '', '', '
' ].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: [ '
', '', '', '
' ].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: [ '
', '', '', '
' ].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);