jQuery实现发送验证码并60秒倒计时功能

本文将详细讲解如何使用jQuery实现发送验证码并60秒倒计时功能。大致的思路是通过点击发送按钮触发AJAX请求,在后台生成随机验证码并发送短信,同时开始倒计时,60秒内禁止再次点击发送按钮。下面将分为以下几个步骤进行讲解:

步骤一:引入jQuery库和相关样式文件

<head>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <link rel="stylesheet" href="path/to/style.css">
</head>

步骤二:HTML结构

<form>
  <div class="form-group">
    <input type="text" name="tel" placeholder="请输入手机号">
  </div>
  <div class="form-group">
    <input type="number" name="captcha" placeholder="请输入验证码">
    <button type="button" class="btn btn-primary" id="send_code">发送验证码</button>
  </div>
</form>

步骤三:发送AJAX请求并开始倒计时

// 定义倒计时变量
var second = 60;

$('#send_code').on('click', function() {
  // 获取手机号码
  var tel = $('input[name="tel"]').val();

  // 发送AJAX请求
  $.ajax({
    type: 'GET',
    url: '/api/sendCode', // 发送验证码的后台接口
    data: {tel: tel},
    success: function(data) {
      if (data.status === 'success') {
        // 发送成功,开始倒计时
        var timer = setInterval(function() {
          second--;
          $('#send_code').text('重新发送('+second+'s)');
          if (second <= 0) {
            clearInterval(timer);
            // 倒计时结束后可以再次点击发送按钮
            $('#send_code').removeAttr('disabled').text('发送验证码');
          }
        }, 1000);

        // 倒计时开始后禁用发送按钮
        $('#send_code').attr('disabled', 'disabled');
      } else {
        // 发送失败,弹出提示框
        alert(data.message);
      }
    },
    error: function(xhr, type, errorThrown) {
      // 异常处理
      console.log(xhr);
      console.log(type);
      console.log(errorThrown);
    }
  });
});

步骤四:后台接口代码示例(PHP)

/**
 * 发送验证码
 *
 * @param string $tel 手机号码
 *
 * @return bool
 */
function sendCode($tel) {
  $code = mt_rand(100000, 999999);

  // 发送短信,略...

  if ($sendResult === true) {
    // 缓存验证码
    cache($tel.'_code', $code, 300);
    return true;
  } else {
    return false;
  }
}

// 调用发送验证码函数
if (isset($_GET['tel'])) {
  if (sendCode($_GET['tel'])) {
    echo json_encode(['status' => 'success', 'message' => '验证码已发送']);
    exit;
  } else {
    echo json_encode(['status' => 'error', 'message' => '验证码发送失败,请稍后再试']);
    exit;
  }
}

以上是一个使用jQuery实现发送验证码并60秒倒计时的完整攻略,如果有需要可以根据实际项目需求进行修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现发送验证码并60秒倒计时功能 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • jQWidgets jqxLoader宽度属性

    jQWidgets jqxLoader宽度属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxLoader是其中之一。本文将详细介绍jqxLoader的宽度属性包括用法、语法和示例。 宽度属性的语法 jqxLoader的宽度属性用于设置加载器的宽度。基本语法如下: $(‘#jqxLoader’).jqxLoader…

    jquery 2023年5月10日
    00
  • jQWidgets jqxDataTable filterHeight属性

    以下是关于“jQWidgets jqxDataTable filterHeight属性”的完整攻略,包含两个示例说明: 简介 jqx 控件提供了 filterHeight 属性,用于设置表格选器的高度。通过设置 filterHeight 属性,我们可以控制表格筛选器的高度,以适应不同的需求。 详细攻略 以下是 jqxDataTable 控件的 filterH…

    jquery 2023年5月11日
    00
  • jQWidgets jqxGrid localizestrings()方法

    jQWidgets jqxGrid localizestrings()方法详解 jQWidgets jqxGrid 是一种表格控件,用于在 Web 应用程序中创建表格。localizestrings() 方法是 jqxGrid 控件的一个方法,用于本地化字符串。本文将详细讲解 localizestrings() 方法的使用方法,并提供两个示例。 方法 loc…

    jquery 2023年5月10日
    00
  • jQWidgets jqxListBox checkboxes属性

    jQWidgets jqxListBox Checkboxes属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxListBox是其中之一,本文将详细绍jqxListBox的checkboxes属性,包括定义、语法和示例。 Checkboxes属性的定义 jqxListBox的checkboxes属性用于在列表框中…

    jquery 2023年5月10日
    00
  • 如何使用jquery动态加载js,css文件实现代码

    使用jQuery动态加载JS、CSS文件是网站开发中非常常见的需求。下面将对如何使用jQuery动态加载JS、CSS文件进行详细讲解。 1. 动态加载CSS文件 动态加载CSS文件可以用来在页面加载时加载一些基本的CSS文件,同时也可以在用户操作的时候动态加载一些适配性的CSS文件。 动态加载CSS文件需要使用jQuery的$.get方法来获取所需的CSS文…

    jquery 2023年5月27日
    00
  • jQWidgets jqxDataTable sortable属性

    以下是关于“jQWidgets jqxDataTable sortable属性”的完整攻略,包含两个示例说明: 简介 jqxDataTable 控件的 sortable 属性用于控制表格是否可排序。 完整攻略 以下是 jqxDataTable 控件 sortable 属性的完整攻略: 定义 sortable 属性 在 jqxDataTable 控件中,可以使…

    jquery 2023年5月11日
    00
  • jQWidgets jqxSortable延迟属性

    下面是关于jQWidgets jqxSortable延迟属性的详细攻略。 什么是jQWidgets jqxSortable延迟属性? jQWidgets jqxSortable是一个jQuery插件,用于创建可排序的列表或表格。它具有多种属性和方法,其中延迟属性是其一个重要的特性。延迟属性可以设置拖拽开始的延迟时间,以免出现意外拖拽行为。 如何使用jQWid…

    jquery 2023年5月12日
    00
  • jQWidgets jqxMenu keyboardNavigation属性

    以下是关于 jQWidgets jqxMenu 组件中 keyboardNavigation 属性的详细攻略。 jQWidgets jqxMenu keyboardNavigation 属性 jQWidgets jqxMenu 组件的 keyboardNavigation 属性用于启用或禁用键盘导航功能。启用该功能后,用户可以使用键盘上的方向键和回车键来浏览…

    jquery 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部