快捷搜索:   nginx

jquery实现发验证码等待倒计时效果

我们在处理验证码发送的时候,经常需要让用户不要一直点击发送,而是第一次发送后要过一定时间后才能再次点击发送按钮,这个效果可以用下面方法实现:


HTML代码如下:

<div class="cy-inNumBox wid90">
    <h3>请输入你需要绑定的邮箱</h3>
    <div class="cy-inNum-body">
        <input class="borderDe" type="text" name="email" id="email"/>
        <button class="unShadow float-right" id="sendEmailCode">发送验证码</button>
    </div></div>

主要jquery代码(这里得配合后端实现ajax数据交互)

$('#sendEmailCode').click(function () {
    var email = $.trim($('#email').val());
    if (email == '') {
        dawnAlert('请填写您的邮箱');
        return false;
    }else if(!/^[^@]+@[^@]+\.[^@]+$/.test($('#email').val())){
        dawnAlert('请输入正确格式的邮箱');return false;
    }
 
    $.post('<?php echo url("Validform/sendEmail")?>', { 'email': email }, function (data) {
        if (data) {
 
            vcodeTick(10);//执行方法
            dawnAlert('验证码已发送至您的邮箱,请注意查收');
            $('#sendEmailCode').attr({'disabled':'disabled','readonly':true}).css('cursor','wait'); //使鼠标失效成等待状态
        } else {
            dawnAlert(data.msg);
        }
    }, 'json');
    return false;})//再次发送等待处理function vcodeTick(count) {
    if (count <= 0) {
        $('#sendEmailCode').bind('click').html('发送验证码');
        $('#sendEmailCode').attr({'disabled':false,'readonly':false}).css('cursor','');
        return;
    }
    $('#sendEmailCode').html(count + ' 秒后发送');
    count--;
    setTimeout('vcodeTick(' + count + ')', 1000);}



顶(1)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论