password.js 1.96 KB
/**
 * 注册-密码
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */
let $ = require('yoho-jquery');

let $pwd = $('#pwd'),
    $pwdLint = $('.pwd-lint'),
    $pwdLintTxt = $pwdLint.find('.pwd-lint-txt'),
    $btnSure = $('#btn-sure');

let api = require('../api');
let tip = require('plugin/tip');
let validatePWD = require('../password-check');

let trim = $.trim;
let showErrTip = tip.show;

let sourceType = $('#sourceType').val(),
    openId = $('#openId').val(),
    phoneNum = $('#phone-num').val(),
    areaCode = $('#area-code').val().replace('+', ''),
    code = $('#code').val();

function startBind(password) {
    $.ajax({
        url: '/passport/bind/bindMobile',
        type: 'post',
        data: {
            areaCode: areaCode.replace('+', ''),
            phoneNum: phoneNum,
            openId: openId,
            sourceType: sourceType,
            password: password,
            code: code
        },
        success: function(res) {
            if (res.code === 200) {
                tip.show('登录成功');
                setTimeout(function() {
                    location.href = res.data.refer;
                }, 2000);
            } else {
                tip.show(res.message);
            }
        },
        error: function() {
            tip.show('登录失败,请重试!');
        }
    });
}

api.bindEyesEvt({
    status: 'open' // 默认眼睛打开
});

$pwd.bind('input', function() {
    let val = $.trim(this.value);
    let bool = validatePWD(val, function(res) {
        $pwdLint.css({visibility: res.valid ? 'hidden' : 'visible'});

        if (!res.valid) {
            $pwdLintTxt.text(res.msg);
        }
    });

    $btnSure.toggleClass('disable', !bool);
});

$btnSure.on('touchstart', function() {
    let pwd = trim($pwd.val());

    if ($btnSure.hasClass('disable')) {
        return;
    }

    if (validatePWD(pwd) === false) {
        showErrTip('密码6-20位,请重新输入');
    } else {
        startBind(pwd);
    }
});