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日

相关文章

  • jQuery UI Autocomplete创建事件

    jQuery UI 的 Autocomplete 组件提供了一个 create 事件,该事件在 Autocomplete 菜单创建时触发。在本教程中,我们将详细介绍 Autocomplete 的 create 事件的使用方法。 create 事件基本语法: $( ".selector" ).autocomplete({ create: f…

    jquery 2023年5月11日
    00
  • jQuery UI菜单图标选项

    jQuery UI Menu 是一个强大的 JavaScript 库,它提供了许多选项和功能,以便创建自定义的菜单。其中,图标选项用于在菜单项中添加图标。以下是详细攻略,含两个示例,演示如何使用图标选项: 步骤1:引库 在使用之前,需要先 HTML 引入 jQuery 库和 jQuery UI 库。可以通过以下方式引入: <link rel=&quot…

    jquery 2023年5月9日
    00
  • jQWidgets jqxTree enableItem()方法

    以下是关于 jQWidgets jqxTree 组件中 enableItem() 方法的详细攻略。 jQWidgets jqxTree enableItem() 方法 enableItem() 方法用于启用或禁用 jQWidgets jqxTree 组件中的节点。启用节点后,用户可以该节点进行交互。禁用后,用户无法与该节点进行交互。 语法 $(‘#tree’…

    jquery 2023年5月11日
    00
  • 原始的js代码和jquery对比体会

    下面是讲解“原始的js代码和jquery对比体会”的完整攻略。 什么是原始的JS代码和jQuery? 原始的JS代码意味着使用JavaScript原生代码来编写网站功能。JS是Web开发过程中重要的语言,但也是相对较复杂的编程语言。原始的JS代码由于常常涉及DOM操作和事件处理等核心任务,因此经常需要充分掌握JavaScript语言的相关知识和技能,才能编写…

    jquery 2023年5月28日
    00
  • 如何在jQuery的文档准备事件中运行代码

    在jQuery中,可以使用文档准备事件来确保代码在文档完全加载后再运行。以下是详细的攻略,包含两个示例,演示如何在jQuery的文档准备事件中运代码: 步骤1:引入jQuery库 在使用之前,需要先在HTML文引jQuery库。可以通过以下方式引入: <script src="https://code.jquery.com/jquery-3.…

    jquery 2023年5月9日
    00
  • jQuery自定义事件的简单实现代码

    下面将详细讲解如何实现 jQuery 自定义事件的简单代码实现,包括代码解读和示例说明。 1. 实现自定义事件的基本思路 实现自定义事件,需要分两步走: 定义自定义事件 使用 jQuery.event.special 对象定义自定义事件,可以使用该对象的 setup、teardown、add、remove 函数分别实现自定义事件的绑定、解绑和触发等功能。 触…

    jquery 2023年5月29日
    00
  • 如何在jQuery UI中禁用一个日期选择器

    以下是关于如何在 jQuery UI 中禁用一个日期选择器的完整攻略: 如何在 jQuery UI 中禁用一个日期选择器 在 jQuery UI 中,可以使用 disable 方法来禁用一个日期选择器。这将使日期选择器不可用,并将其外观更改为禁用状态。 语法 $(selector).datepicker(‘disable’); 示例一:基本使用 <!D…

    jquery 2023年5月11日
    00
  • jQuery基于Ajax方式提交表单功能示例

    当使用jQuery提交一个表单时,我们可以选择使用Ajax方式提交,这使得页面不用刷新,用户体验更加流畅,同时还可以在前端进行表单验证。 下面是一个基于Ajax方式提交表单的示例代码: HTML代码 <form id="myForm"> <label for="name">姓名:</lab…

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