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

let $phoneNum = $('#phone-num'),
    $countrySelect = $('#country-select'),
    $areaCode = $('#area-code'),
    $btnNext = $('#btn-next');

let api = require('../api');
let tip = require('plugin/tip');

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

let requested = false;

api.selectCssHack($('#country-select'));

api.bindClearEvt();


// 图片验证码
let Validate = require('plugin/validata');

let validate = new Validate('#js-img-check', {
    useREM: {
        rootFontSize: 40,
        picWidth: 150
    }
});

validate.init();

/**
 * 必填校验
 */
function checkEnableNext() {
    let phone = trim($phoneNum.val());
    let area = trim($countrySelect.val());

    let ret = true;

    $.each([phone, area], function(i, val) {
        if (!val) {
            ret = false;
            return ret;
        }
    });

    return ret;
}

/*
    Event bind
*/
$('.reg-page')
    .on('input', '.phone-num', function() {
        $btnNext.toggleClass('disable', !checkEnableNext());
    });

$countrySelect.change(function() {
    $areaCode.text($countrySelect.val());
});

$btnNext.on('touchstart', function() {
    let pn = trim($phoneNum.val()),
        areaCode = $countrySelect.val();

    if ($btnNext.hasClass('disable')) {
        return;
    }
    if (requested) {
        return false;
    }
    if (api.phoneRegx[areaCode].test(pn) || areaCode !== '+86') {
        validate.getResults().then((result) => {
            requested = true;
            let params = {
                areaCode: areaCode.replace('+', ''),
                phoneNum: pn,
                inviteCode: $('#invite-code').val()
            };

            $.extend(params, result);
            $.ajax({
                url: '/passport/reg/verifymobile',
                type: 'POST',
                data: params,
                success: function(data) {
                    validate.type === 2 && validate.refresh();
                    if (data.code === 200) {
                        location.href = data.data;
                    } else {
                        (data.changeCaptcha && validate.type !== 2) && validate.refresh();

                        showErrTip(data.message);
                        requested = false;
                    }
                },
                error: function() {
                    showErrTip('出错了,请重试');
                    validate.refresh();
                    requested = false;
                }
            });
        });
    } else {
        showErrTip('手机号格式不正确,请重新输入');
    }
});