我的编程空间,编程开发者的网络收藏夹
学习永远不晚

手动实现js短信验证码输入框

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

手动实现js短信验证码输入框

前言

  本文记录一下自己手动实现的一个前端常见的短信验证码输入组件,从需求到实现逐步优化的过程。

正文

  1.需求分析

  首先看一下效果图。

 

  首先页面加载的时候,输入框获取焦点,当用户输入一个数字后,焦点自动跳转到第二个框,当四个框全部输入后,模拟发送提交请求,这里用一个弹框提示,输出输入的验证码内容。主流程之外的需求: 输入框内只能输入数字类型,不能输入字母,若强制输入非数字类型按下撤回键时候输入的验证码置空并且把当前焦点跳转至第一个输入框。

  2.完整代码实现。

  大致思路就是页面加载的时候,给第一个输入框添加 autofocus 属性,让其自动获取焦点,然后监听键盘点击事件,当键盘按下的时候,判断当前按键是否是数字按键,若不是,则当前输入框置空,焦点还在当前输入框,若为数字,则判断前面的输入框是否有数字存在,若不存在,则把焦点跳转到前面空的一个输入框,否则当前输入框输入,并且焦点移至下一个输入框,焦点通过输入框的一个伪类实现,当输入长度为为4时候,将每个输入框数字拼接成字符串通过弹框提示。


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .check-div {
        width: 400px;
        height: 600px;
        margin: 100px auto;
        border: 1px solid slategrey;
        text-align: center;
      }
      h1 {
        font-size: 24px;
      }
      .input-div {
        margin-top: 100px;
      }
      input {
        margin-left: 5px;
        text-align: center;
        width: 50px;
        height: 50px;
        border: none;
        
        outline: 1px solid black;
      }
      input:focus {
        outline: 2px solid #3494fe;
      }
    </style>
  </head>
  <body>
    <div class="check-div">
      <h1>请输入验证码</h1>
      <div class="input-div">
        <input
          type="text"
          class="inputItem0"
          data-index="0"
          maxlength="1"
          autofocus
        />
        <input type="text" class="inputItem1" data-index="1" maxlength="1" />
        <input type="text" class="inputItem2" data-index="2" maxlength="1" />
        <input type="text" class="inputItem3" data-index="3" maxlength="1" />
      </div>
    </div>
    <script>
      var inputArr = document.getElementsByTagName("input");
      window.addEventListener("keyup", (e) => {
        let curIndex = e.target.getAttribute("data-index"); //获取当前输入的下标
        //如果点击BackSpace删除 这里删除全部
        if (e && e.keyCode == 8) {
          console.log(22222222222);
          for (let j = 0; j <= 3; j++) {
            inputArr[j].value = "";
            inputArr[0].focus();
          }
          return;
        }
        console.log("e.keyCode", e.keyCode);
        //如果输入的不是数字
        if (!(e.keyCode >= 48 && e.keyCode <= 57)) {
          console.log(1111111111);
          inputArr[curIndex].value = "";
          return false;
        }
        //遍历数组的值拼接成验证码字符串
        var str = "";
        for (let j = 0; j <= 3; j++) {
          console.log(inputArr[j].value);
          str += inputArr[j].value;
        }

        var nextIndex = Number(curIndex) + 1;
        //判断没有属够四位验证码的时候
        if (curIndex < 3 && str.length < 4) {
          for (let i = 0; i <= curIndex; i++) {
            // 判断之前的是否有空即没输入的情况,存在则把焦点调整到前面,并且把输入的后面给到最前面的一位,否则跳到下一位
            if (!inputArr[i].value) {
              inputArr[curIndex].blur();
              inputArr[i].value = inputArr[curIndex].value;
              var index = i + 1;
              inputArr[index].focus();
              inputArr[curIndex].value = "";
              return;
            } else {
              var nextIndex = Number(curIndex) + 1;
              inputArr[nextIndex].focus();
            }
          }
        } else {
          alert("提交的验证码是" + str);
          //输入了四位验证码的时候可以发送验证码请求等等
        }
      });
    </script>
  </body>
</html>

总结

到此这篇关于手动实现js短信验证码输入框的文章就介绍到这了,更多相关js短信验证码输入框内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

手动实现js短信验证码输入框

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

uniapp手机验证码输入框如何实现

本篇内容主要讲解“uniapp手机验证码输入框如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“uniapp手机验证码输入框如何实现”吧!如键盘被隐藏,可直接点击蓝框弹出键盘,蓝框就相当于i
2023-07-05

短信验证码—Java实现

在业务需求中我们经常会用到短信验证码,比如手机号登录、绑定手机号、忘记密码、敏感操作等,都可以通过短信验证码来保证操作的安全性,于是就记录下了一次开发的过程。 一.架构设计 发送短信是一个比较慢的过程,因为需要用到第三方服务(腾讯云短信
2023-08-17

uniapp自定义输入框,实现验证码输入框、密码输入框、兼容微信小程序

前言 在移动端或者小程序项目中,验证码输入框、密码输入框也是很常见的,今天我们就来实现一个这样的效果。 图片展示 代码实现 我这里是用uniapp实现的可兼容微信小程序。 大家如果需要微信小程序也可以参考此案例,实现思路都是一样的。 te
2023-08-18

Android实现短信验证码自动填写

android应用经常会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,通常,用户收到短信需要最小化应用去查看短信再填入验证码,必然比较麻烦,因此有必要能够自动获得下发的短信验证码,方便了用户的操作,用户体验更好。
2022-06-06

Nodejs实现短信验证码功能

使用Nodejs的开发者愈来越多,基于Nodejs的后台开发也多了起来,像短信验证码、短信群发、国际短信这些需求,完全可以采用第三方接口来实现,云片就提供了这样的接口。 Nodejs// 修改为您的apikey.可在官网(https://w
2022-06-04

Java如何实现短信验证码

本篇内容主要讲解“Java如何实现短信验证码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现短信验证码”吧!截图展示实现代码后台接收前台的kgCaptchaToken进行验证,验证
2023-07-05

Android实现短信验证码自动填写功能

本实例为大家分享了Android实现短信验证码自动填写功能,供大家参考,具体内容如下 实现思路很简单:1、在需要输入验证码的Activity代码注册监听短信的广播2、拦截短信,获取其中的验证码3、回写到EditTextprivate Sms
2022-06-06

android怎么实现自动填充短信验证码

要实现自动填充短信验证码,你可以使用以下步骤:1. 获取收到的短信:在Android中,你可以使用`SmsRetriever` API来获取收到的短信。首先,在你的应用中添加以下依赖项:```groovyimplementation 'co
2023-09-05

python实现发送和获取手机短信验证码

首先为大家分享python实现发送手机短信验证码后台方法,供大家参考,具体内容如下 1、生成4位数字验证码def createPhoneCode(session): chars=['0','1','2','3','4','5','6','7
2022-06-04

iOS实现短信验证码倒计时

在开发中,经常在需要用户注册的时候会需要实现验证码倒计时的功能,下面是解决这个问题的两种思路(使用UIButton控件) 一、利用NSTimer计时器1.新建一个UIButton按钮,设置成属性,名为codeButton。(UIButton
2022-05-30

Android利用CursorLoader实现短信验证码自动填写

概述 Android上实现短信验证码自动填写,常用的有两种方式。一种是利用BroadCastReceiver,还有一种是监听手机上短信数据库的变化。利用BroadCastReceiver来实现会在一些情况下无效,最常见的就是手机上安装了具有
2022-06-06

Android实现获取短信验证码并自动填充

这篇文章主要为大家详细介绍了Android如何实现获取短信验证码并自动填充的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
2023-05-16

编程热搜

目录