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

var $phoneNum = $('#phone-num'),
    $countrySelect = $('#country-select'),
    $areaCode = $('#area-code'),
    $captcha = $('#js-captcha'),
    $captchaPNG = $('.passport-captcha-png'),
    $btnNext = $('#btn-next');

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

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

var requested = false;

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

api.bindClearEvt();


// 图片验证码
let ImgCheck = require('plugin/img-check');

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

imgCheck.init();

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

    var 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() {
    var pn = trim($phoneNum.val()),
        areaCode = $countrySelect.val(),
        captcha = imgCheck.getResults();

    if (captcha === '0000') {
        tip.show('请将图片旋转到正确位置');
        return false;
    }

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

    if (requested) {
        return false;
    }


    if (api.phoneRegx[areaCode].test(pn)) {

        requested = true;

        $.ajax({
            url: '/passport/reg/verifymobile',
            type: 'POST',
            data: {
                areaCode: areaCode.replace('+', ''),
                phoneNum: pn,
                captcha: captcha
            },
            success: function(data) {
                if (data.code === 200) {
                    location.href = data.data;
                } else {
                    imgCheck.refresh();

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