mobile.js 2.07 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'),
    $verifyCode = $('#verify-code'),
    $verifyCodeImg = $('#verify-code-img'),
    $btnNext = $('#btn-next');

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

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

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

api.bindClearEvt();

$phoneNum.bind('input', function() {
    if (trim($phoneNum.val()) === '') {
        $btnNext.addClass('disable');
    } else {
        $btnNext.removeClass('disable');
    }
});

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

$verifyCodeImg.on('touchstart', function() {
    var oldSrc = $verifyCodeImg.attr('src').split('=');

    $verifyCodeImg.attr('src', oldSrc[0] + '=' + Date.now());
    $verifyCode.val('');
});

$btnNext.on('touchstart', function() {
    var pn = trim($phoneNum.val()),
        area = trim($countrySelect.val()),
        verify = trim($verifyCode.val());

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

    if (verify && area && pn && api.phoneRegx[area].test(pn)) {
        $.ajax({
            url: '/passport/back/sendcode',
            type: 'POST',
            data: {
                areaCode: area.replace('+', ''),
                phoneNum: pn,
                verifyCode: verify
            },
            success: function(data) {
                if (data.code === 200) {
                    location.href = data.data;
                } else if (data.code === 409) {
                    showErrTip(data.message);
                    location.href = data.refer;
                } else {
                    showErrTip(data.message);
                }
            }
        });
    } else if (!area) {
        showErrTip('出错了,请重新刷新页面');
    } else if (!verify) {
        showErrTip('请输入验证码');
    } else {
        showErrTip('手机号格式不正确,请重新输入');
    }
});