这个验证码输入应用场景非常的多,看起来很简单的,但是做起来还是有一些坑。

首先的想法就是6个input框,每输入一个数字之后,切换到下一个input,即切换focus,如果输入很快的话,会导致切换不过来

有卡顿的感觉,pass掉,所以最后使用一个input来接受输入最好,通过样式来切割成6个框,感觉这种也不好控制也就pass掉;

最后的想法是放6个input框,但是全都是disabled的,然后让一个隐藏的input来接受输入,这个input添加change事件,让接受到的值分割后在赋到其他6个disabled框中显示出来。

先看看效果:

效果图

Html code如下:

Enter the One-Time Password sent to your mobile number:

1502****760

One-Time Password

Next

js code:

function inputNumOnly(e) {

if (!(event.keyCode == 46) && !(event.keyCode == 8) && !(event.keyCode == 37) && !(event.keyCode == 39)) {

if (!((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105))) {

event.returnValue = false;

}

if (e.value && e.value.length >= 6) {

event.returnValue = false;

}

}

}

function keyupHandler(e) {

e.value = e.value.substr(0, 6);

code = e.value

for (var i = 0; i < 6; i++) {

if (i < code.length) {

document.getElementById("tb" + i).value = code[i];

} else {

document.getElementById("tb" + i).value = "";

}

}

if (code.length === 6) {

document.getElementById("btn-submit-form").style.display = "block";

}

}

function focusHandler(e) {

document.getElementById("hdcode").focus();

}

css code 只截取了部分:

/* page-container */

.page-container {

position: absolute;

bottom: 0;

top: 0;

left: 50%;

margin-left: -150px;

font-family: "Seravek Light";

font-size: 16px;

font-weight: normal;

line-height: 1.4;

color: #eee;

overflow: auto;

border-radius: 3px;

padding: 50px 0;

height: auto;

width: 100%;

max-width: 300px;

overflow-y: hidden;

background: linear-gradient(#00815a, #008120);

box-shadow: 0 2px 0 rgba(175, 175, 175, 0.12);

}

.pd-container {

padding: 10px 30px;

}

.bg-green-lighter {

background: linear-gradient(#339a7b, #339a3d);

}

@media only screen and (max-width: 600px) {

.page-container {

position: absolute;

bottom: 0;

top: 0;

left: 0;

margin: 0;

padding: 20px 0;

border: none;

box-shadow: none;

width: 100%;

max-width: 100%;

}

}

@media only screen and (min-height: 736px) {

.page-container {

padding: 120px 0;

}

}

/* checked-codes */

.checked-codes {

max-width: 300px;

margin: 0 auto;

}

.checked-codes .flex {

justify-content: space-between;

}

.checked-codes a {

float: right;

font-size: 13px;

color: #000000;

text-decoration: underline;

line-height: 13px

}

.checked-codes input {

box-sizing: border-box;

height: 40px;

max-width: 40px;

border: solid 1px #eee;

border-radius: 4px;

margin: 0 2px;

flex: 1;

font-size: 18px;

text-align: center;

background-color: transparent;

color: #eee;

}

.con-message {

padding-top: 100px;

padding-bottom: 50px;

}

button {

padding: 6px 0;

margin: 10px 0;

}

.code-tip {

font-size: 14px;

}

.code-container:active {

-moz-box-shadow: 0px 7px 20px #333333;

-webkit-box-shadow: 0px 7px 20px #333333;

box-shadow: 0px 7px 20px #333333;

}

.flex {

display: flex;

}

END!!!

js+css实现验证码框,前端实现6位验证码输入框效果相关推荐

  1. html鼠标滑过导航条展开导航条,JS+CSS实现鼠标滑过时动态翻滚的导航条效果

    本文实例讲述了JS+CSS实现鼠标滑过时动态翻滚的导航条效果.分享给大家供大家参考.具体如下: 这是一款鼠标悬停时动态翻滚的导航条,注意这里用了两个背景图,请等待网页加载完成或多刷新几次,这个是使用J ...

  2. html设置文本框只读属性,juqery/js/css设置文本框只读属性的方法

    一.设置HTML表单文本框为只读的几种方式 有时候,我们希望表单中的文本框是只读的,让用户只能查看信息而不能修改其中的信息,使 input type="text" name=&qu ...

  3. JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法

    本文实例讲述了js+CSS实现弹出一个全屏灰黑色透明遮罩效果的方法.分享给大家供大家参考.具体分析如下: 在众多的网站都有这样的效果,当进行一定的操作之后,会弹出一个灰黑色的半透明的遮罩,在上面可以操 ...

  4. html下拉列表插件,js+CSS实现模拟华丽的select控件下拉菜单效果

    本文实例讲述了js+CSS实现模拟select控件的下拉菜单效果.分享给大家供大家参考.具体如下: 这是一个JS+CSS技术实现的Select控件效果,模拟出来的,比默认的Select更漂亮,有了这个 ...

  5. 伪验证码(含随机验证码方法)js+css

    HTML ---------------------------------------------- <!DOCTYPE html> <html> <head> ...

  6. 前端(js/css/html)那些小的知识点,持续更新......

    前端(js/css/html)那些小的知识点,持续更新...... 1.行内元素与块级元素有哪些及区别? 块级元素和行内元素的区别是,块级元素会占一行显示,而行内元素可以在一行并排显示.通过样式控制, ...

  7. 国内可用的css,js,图标字体,等常用前端公共库CDN服务

    CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节 ...

  8. html+js+css 调用jquery 工人信息管理功能(增删改查)前端实现,以及调用实现鼠标拖尾粒子效果的js库

    html + js + css 调用jquery以及underscore.min.js(配合代码实现鼠标粒子效果)实现全前端信息管理基本功能(增删改查) 先附上我运行的一段视频,手机打开清晰一点或者直 ...

  9. html记住密码勾选框,JS+CSS实现的一个记住密码的提示框

    JS+CSS实现的一个记住密码的提示框_网页代码站(www.webdm.cn) body,input,p{margin:0;padding:0;} body{font:12px/1.5 Tahoma; ...

最新文章

  1. 功率曲线k值_分布式光伏:如何用“小时功率曲线”估算自用容量比例
  2. 延时函数介绍和呼吸灯的实现
  3. 如何将现有的回调API转换为Promise?
  4. cad文字提取到excel_干货!南方CASS设计土石方方格网点上提取高程方法
  5. 面试官:你知道哪几种事务失效的场景?
  6. 2、ShardingSphere 之 Sharding-JDBC实现水平分表
  7. FckEditor的安装与设置
  8. Mongodb 集群加keyFile认证,Mongodb用户管理(转:http://blog.csdn.net/wlzjsj/article/details/61421230)
  9. ubuntu下硬盘相关
  10. [51单片机] EEPROM 24c02 [I2C代码封装-保存实现流水灯]
  11. 机器学习基础一(TP,TN,FP,FN等)
  12. python io密集型应用案例-Python中单线程、多线程和多进程的效率对比实验实例
  13. VC++ HIDAPI实现USB数据读写
  14. VS2008找不到MFC90d.dll错误解决方法
  15. 斐波那契数列的非递归实现
  16. (转)最近100年全球最顶尖公司的共性
  17. 强网杯2021CTF 强网先锋shellcode侧信道攻击复现
  18. Web前端课程设计——个人主页
  19. linux 1060显卡,Ubuntu 16.04 安装 NVIDIA GeForce GTX 1060 显卡驱动,以及 CUDA 10.1
  20. android ui的绘制流程图,使用jsPlumb绘制流程图

热门文章

  1. leetcode讲解--169. Majority Element
  2. C语言 · 十六进制转十进制
  3. 80 多个 Linux 系统管理员必备的监控工具
  4. (素材源码) 猫猫学IOS(十二)UI之UITableView学习(上)LOL英雄联盟练习
  5. websevice中runtime modeler error: Wrapper class com.ws.jaxws.Add is not found问题的解决办法
  6. oracle11g安装
  7. 配置交换机端口聚合(思科、华为、锐捷)
  8. IB客座主编(三):西门子(中国)有限公司工业业务领域楼宇科技集团杜明轩(Christophe de Maistre)先生...
  9. Socket中如何设置连接超时
  10. 从Mixin到hooks,谈谈对React16.7.0-alpha中即将引入的hooks的理解