verification.js 3.32 KB
/**
 * 验证手机
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/12/14
 */

var $ = require('yoho-jquery');

var $sc = $('#send-captcha'),
    $msgTip = $('#captcha-tip'),
    $errTip = $('#err-tip'),
    $next = $('#next-step'),
    seconds,
    itime;

$sc.click(function() {
    $.post('/passport/back/sendbackmobile', {
        mobile: $('#mobile').val(),
        area: $('#area').val(),
        verifyCode: $('#captchaPic').val()
    }, function(jsonData) {
        if (jsonData.code === 200) {
            $errTip.hide();
            if ($(this).hasClass('disable')) {
                return;
            }
            seconds = 60;

            // $sc.addClass('disable').prop('disabled', true);
            $sc.addClass('disable').attr('disabled', true);
            $msgTip.removeClass('hide');

            $sc.val(seconds-- + '秒后可重新操作');
            itime = setInterval(function() {
                if (seconds === 0) {
                    clearInterval(itime);

                    // $sc.val('发送验证码').removeClass('disable').prop('disabled', false);
                    $sc.val('发送验证码').removeClass('disable').removeAttr('disabled');
                } else {
                    $sc.val(seconds-- + '秒后可重新操作');
                }
            }, 1000);

        } else {
            $(this).addClass('error');
            $errTip.removeClass('hide').text('发送失败');
        }
    });
});

seconds = 60;

// $sc.addClass('disable').prop('disabled', true);
$sc.addClass('disable').attr('disabled', true);
$msgTip.removeClass('hide');

$sc.val(seconds-- + '秒后可重新操作');
itime = setInterval(function() {
    if (seconds === 0) {
        clearInterval(itime);

        // $sc.val('发送验证码').removeClass('disable').prop('disabled', false);
        $sc.val('发送验证码').removeClass('disable').removeAttr('disabled');
    } else {
        $sc.val(seconds-- + '秒后可重新操作');
    }
}, 1000);


$('#captcha').keyup(function() {
    var v = $.trim($(this).val()),
        that = this;

    if (v.length === 4) {
        $.ajax({
            type: 'POST',
            url: '/passport/back/backmobile',
            dataType: 'json',
            data: {
                code: $('#captcha').val(),
                verifyCode: $('#captchaPic').val(),
                area: $('#area').val(),
                mobile: $('#mobile').val()
            },
            success: function(res) {
                if (res.code === 200) {

                    console.log(res.data);

                    // 添加验证码正确验证
                    $next.removeClass('disable').attr('href', res.data);
                    $errTip.addClass('hide');
                    $(that).removeClass('error');
                } else {
                    $next.addClass('disable');
                    $errTip.removeClass('hide').find('em').text('验证码输入错误');
                    $(that).addClass('error');
                }
            }
        });
    } else {
        $next.addClass('disable').attr('href', 'javascript:;');
    }
}).blur(function() {
    var v = $.trim($(this).val());

    if (v === '') {

        // 添加验证码正确验证
        $(this).addClass('error');
        $errTip.removeClass('hide').text('请输入验证码');
    }
}).focus(function() {
    $(this).removeClass('error');
});