define('lcell/signup', [ 'jquery', 'lcell/common/sms','lcell/common/sms_email', 'lcell/signin', 'jquery.validation' ], function($, sms,sms_email) { $.validator.addMethod('check', function(value, element, param) { if (this.optional(element)) { return "dependency-mismatch"; } if (value.length == 11 && /^1[0-9]{10}$/.test(value)) { return true; } else if ($.validator.methods.email.call(this, value, element)) { return true; } else { return false; } }, '请输入邮箱或手机号码'); $(function() { $('.form-signup').each(function() { var $form = $(this), $submit = $form.find('button[type="submit"]').prop('disabled', false); $form.find('input[type="checkbox"]').on('change', function() { /*$submit.prop('disabled', !$(this).prop('checked'));*/ }); var $phone = $form.find('input[name="phone"]'), $code = $form.find('input[name="code"]'), $validCode = $form.find('input[name="validCode"]'), $btnCode = $form.find('.btn-code'), $btnCodeEmail = $form.find('.btn-code-email'), $platform = $form.find('input[name="platform"]'), $operation = $form.find('input[name="operation"]'), $email =$form.find('input[name="email"]'); $phone.on('change', function() { var val = $validCode.val(); $btnCode.prop('disabled', val.length == 0 || !$phone.valid()); }); $email.on('change', function() { var val = $validCode.val(); $btnCode.prop('disabled', val.length == 0 || !$email.valid()); }); $validCode.on('change', function () { var val = $(this).val(); if ($phone.length != 0) { $btnCode.prop('disabled', val.length == 0 || !$phone.valid()); } if ($email.length != 0) { $btnCode.prop('disabled', val.length == 0 || !$email.valid()); } }); $btnCode.on('click', function() { if (sms.sendCode($btnCode, $phone, $validCode, $platform, $operation)) $code.focus(); }); $btnCodeEmail.on('click', function() { if (sms_email.sendCode($btnCodeEmail, $email, $validCode, $platform, $operation)) $code.focus(); }); $form.on('afterSubmit', function(e, data) { window.location.href = '?success'; }).on('afterFail', function(e, data) { data = data.responseJSON; if (data.validation) { $form.validate().showErrors(data.validation); if (data.validation['code']) $code.focus(); } var password = $("#password").val(); var password_encode = $.base64.decode($.trim(password)); $("#password").val(password_encode); var confirmPassword = $("#confirmPassword").val(); var confirmPassword_encode = $.base64.decode($.trim(confirmPassword)); $("#confirmPassword").val(confirmPassword_encode); }); }); $('.form-reset-pwd').each(function() { var $form = $(this), $phone = $form.find('input[name="phone"]'), $validCode = $form.find('input[name="validCode"]'), $platform = $form.find('input[name="platform"]'), $operation = $form.find('input[name="operation"]'), $btnCode = $form.find('.btn-code'); if($btnCode.data("ticker")) sms.startTicker($btnCode); $btnCode.on('click', function() { sms.sendCode($btnCode, $phone, $validCode, $platform, $operation); }); }); $("input#password").keyup(function(){ checkpwd($(this)); }); function primary(){ $(".pwdColor span").removeClass("co1,co2,co3"); $("span.c1").css("background", ""); $("span.c2").css("background", ""); $("span.c3").css("background", ""); } function weak(){ $("span.c1").css("background", "#FF6666"); $("span.c2").css("background", ""); $("span.c3").css("background", ""); $("span.week").css("color", "#FF6666"); $("span.middle").css("color", ""); $("span.strong").css("color", ""); } function middle(){ $("span.c1").css("background", "#FF6666"); $("span.c2").css("background", "#FFAB37"); $("span.c3").css("background", ""); $("span.week").css("color", "#FF6666"); $("span.middle").css("color", "#FFAB37"); $("span.strong").css("color", ""); } function strong(){ $("span.c1").css("background", "#FF6666"); $("span.c2").css("background", "#FFAB37"); $("span.c3").css("background", "#8FCD5C"); $("span.week").css("color", "#FF6666"); $("span.middle").css("color", "#FFAB37"); $("span.strong").css("color", "#8FCD5C"); } function checkpwd(obj){ var password = $.trim(obj.val()); var len = password.length; var num = /\d/.test(password); var small = /[a-z]/.test(password); var big = /[A-Z]/.test(password); var corps = /\W/.test(password); var score = 0; if(len <= 4){ score = 5; }else if(len >= 5 && len <= 7){ score = 10; }else if(len >= 8){ score = 25; } var letterScore = 0; if((small && !big) || (!small && big)){ letterScore = 10; }else if(small && big){ letterScore = 20; } var numScore = 0; var numCount = password.replace(/\D/g, '').length; if(numCount == 1){ numScore = 10; }else if(numCount >= 3){ numScore = 20; } var corpsScore = 0; var snum = 0; for(var i = 0; i < password.length; i++){ if(/\W/.test(password[i])){ snum++; } } if(snum == 1){ corpsScore = 10; }else if(snum > 1){ corpsScore = 20; } var awardScoe = 0; if((small || big) && num){ awardScoe = 2; }else if((small || big) && num && corps){ awardScoe = 3; }else if(small && big && num && corps){ awardScoe = 5; } var totalScore = score + numScore + letterScore + corpsScore + awardScoe; if(len < 1){ primary(); }else if(len < 6){ weak(); }else if(len >= 6){ if(totalScore < 50){ weak(); }else if(totalScore >= 50 && totalScore < 70){ middle(); }else if(totalScore >= 70){ strong(); } } } }); });