$(document.body).on('click', '.event-el', function (e) { var el = $(this), func = el.data('func'); if (!func) return; switch (func) { case 'send': send(el.parents('div.form-group')); break; } }); function findPhone(el) { this.$F = el; this.F = el.get(0); sms = $(this.F.sms); smsWrap = sms.parent().parent(); return this.init(); } function findEmail(el) { this.$F = el; this.F = el.get(0); return this.init(); } function passwordReset(el){ this.$F = el; this.F = el.get(0); return this.init(); } function send(el) { var _this = el.parent('form'), sendType = ['login', 'register', 'recover'], btn = el.children('div.input-group').children('a'), number = _this.children('div.form-group').eq(1), input = number.children('input'), getnumber = number.children('input').val(), lock = btn.attr('disabled'); sendType = sendType[btn.attr('data-id')]; if(lock) return; if (!getnumber) { YZ.Valid(input, '请输入手机号码',true); return false; } if (!isMobile(getnumber)) { YZ.Valid(input, '请输入正确的手机号码',true); return false; } if (getnumber) { YZ.Valid(input); $.ajax({ url: BASE_URL + sendType + '/sendSms', type: 'post', dataType: 'json', data: { mobile: getnumber, }, success: function (rs) { if (rs.state == 0) { errorMessage(_this, rs.message); } else if (rs.state == 1) { delayedGet(60, '#sendCode', '重新发送验证码'); } return false; }, error: function (rs) { errorMessage(_this, rs || '系统错误,请重试'); return false; } }); } else { YZ.Valid(input, '请输入手机号码',true); return false; } } function checkUsefull (){ var that = $(this), username = $.trim(this.value); if (!username) return false; if(!(isMobile(username))){ YZ.Valid(that.next().context,'请输入正确的手机号码'); $('#msgCodeInput').value = ''; return false; } YZ.Valid(that.next().context); $.ajax({ url: BASE_URL + 'login/checkuser', type: 'post', dataType: 'json', data: { action:'mobile', username: username }, success: function (rs) { if (rs.state == 1) { that.next().addClass('hide'); YZ.Valid(that.next().context); return false; } if (rs.state == 0) { YZ.Valid(that.next().context,'该账号还没注册,请先注册'); return false; } }, error: function () { YZ.Valid(that.next().context,'系统错误,请重新输入'); return false; } }); }//找回时验证手机是否已注册 function checkUserEmail() {//检查邮箱 var that = $(this), username = $.trim(this.value); if (!username) return false; if(!(isEmail(username))){ YZ.Valid(that.next().context,'请输入正确的邮箱'); return false; }else{ YZ.Valid(that.next().context); } }//验证邮箱 function confirmPassword(i,btn){//验证两次输入的密码是否相同,需要绑定两个一样的name【reset,affirm】,并传入当前绑定的控件this var that =$(btn); if (!i.affirm.value) return false; YZ.Valid(that.next().context); if( i.reset.value != i.affirm.value ){ YZ.Valid(that.next().context,'两次输入的密码不一致'); } }//验证密码相同 function checKey(){ var that = $(this), key = $.trim(this.value); if (!key) return false; YZ.Valid(that.next().context); if(key.length < 6 || key.length > 18){ YZ.Valid(that.next().context,'请输入6到18位的密码'); return; } }//验证密码长度 function delayedGet(time, el, beTxt) {//验证码倒计时 time--; var ele = $(el); if (time < 1) { ele.attr('disabled', false); ele.text(beTxt); } else { ele.attr('disabled', true); ele.text(time + '秒后重新获取'); setTimeout('delayedGet(' + time + ',"' + el + '","' + beTxt + '")', 1000); } }//倒计时 function vcodeChange(el) { el = $(el); el.attr('src', el.attr('url') + '?' + new Date().getTime()); }//刷新验证码 function errorMessage(elem, messageStr) {//错误提示框 var message = elem.children('.show-error'); $('html').scrollTop(0); message.removeClass('hide'); message.text(messageStr); } !function(){ function initError() { this.$error = $('.has-error', this.$F); if (!this.$error.is(':hidden')) this.$error.addClass('hide'); } function hideMessage() { $(this).find('.help-block').addClass('hide'); $(this).find('.has-error').removeClass('has-error'); } //TODO 手机号码找回 findPhone.prototype.init = function(){ initError.call(this); this.initEvent(); return this; } findPhone.prototype.messages = []; findPhone.prototype.initEvent = function(){ var _this = this; _this.$F.on('submit',function(){//手机找回发送 hideMessage.call(this); if(_this.F.username.value){ if(!isMobile(_this.F.username.value)){ YZ.Valid(this.username, '请输入正确的注册手机号码', true); return; } }else{ YZ.Valid(this.username, '请输入注册手机号码', true); return; } if(!_this.F.smsPhone.value){ YZ.Valid(this.smsPhone,'请输入手机验证码',true); return; } hideMessage.call(this); if(true){ $.ajax({ url: BASE_URL + 'recover', type: 'post', dataType: 'json', data: { action:'mobile', username:_this.F.username.value, smscode:_this.F.smsPhone.value, }, success: function (rs) { if(rs.state == 0){ errorMessage(_this.$F, rs.message); }else if(rs.state == 1){ location.href = BASE_URL + 'recover/reset'; }else if(rs.state == 2){ YZ.ValidWithBtn(_this.F.username,(rs.content),rs.message.forward); } }, error: function () { errorMessage(_this.$F, '系统错误,请重试'); } }); } }); } //TODO 邮箱找回 findEmail.prototype.init = function(){ initError.call(this); this.initEvent(); return this; } findEmail.prototype.messages = []; findEmail.prototype.initEvent = function(){ var _this = this; _this.$F.on('submit',function(){//邮箱找回发送 hideMessage.call(this); if(_this.F.username.value){ if(!isEmail(_this.F.username.value)){ YZ.Valid(this.username,'请输入正确的注册邮箱',true); return; } }else{ YZ.Valid(this.username,'请输入注册邮箱',true); return; } hideMessage.call(this); if(true){ $.ajax({ url: BASE_URL + 'recover', type: 'post', dataType: 'json', data: { action:'email', username:_this.F.username.value, }, success: function (rs) { if(rs.state == 0){ errorMessage(_this.$F, rs.message); }else if(rs.state == 1){ location.href = BASE_URL + 'recover/sendmail'; }else if(rs.state == 2){ YZ.ValidWithBtn(_this.F.username,(rs.content),rs.message.forward); } }, error: function () { errorMessage(_this.$F, '系统错误,请重试'); } }); } }); } //TODO 重置密码 passwordReset.prototype.init = function(){ initError.call(this); this.initEvent(); return this; }; passwordReset.prototype.messages = []; passwordReset.prototype.initEvent = function(){ var _this = this; $(_this.F.reset).on('blur',checKey); $(_this.F.affirm).on('blur',function(){ var btn = this; confirmPassword(_this.F,btn); }); _this.$F.on('submit',function(){//发送重置请求 if(!_this.F.reset.value){ errorMessage(_this.reset, '请输入密码',true); return; } if(!_this.F.affirm.value){ errorMessage(_this.affirm, '请输入确认密码',true); return; } if(_this.F.reset.value != _this.F.affirm.value){ errorMessage(_this.reset, '两次输入的密码不一致',true); return; } hideMessage.call(this); $.ajax({ url: BASE_URL + 'recover/reset', type: 'post', dataType: 'json', data: { password:_this.F.reset.value, repassword:_this.F.affirm.value, }, success: function (rs) { if( rs.state == 0){ errorMessage(_this.$F, rs.message); }else if(rs.state ==1){ if(rs.content.id>0){ location.href = BASE_URL + 'recover/success'; } } }, error: function () { errorMessage(_this.$F, '系统错误,请重试'); } }); }); } }();