JS实现六位字符密码输入器功能


Posted in Javascript onAugust 19, 2016

老规矩~ 上DEMO,过过瘾先:六位字符密码输入器

再上源码:六位字符密码输入器

从DEMO中我看可以看出,首先只能输入六个字符,并且仅允许输入数字,在输入六位数字完成之后会自动执行一个回调(DEMO中是将输入结果显示出来了)

一. 先说原理

首先呢,我们需要两个东东:其一是一个真是的输入框,即:真正处于焦点状态并获取用户输入的input;其二是一组伪输入框,即:并没有真正获取焦点,但只是显示了当前输入的值(当然啦,密码嘛,只有一个小黑点而已~)。

其次呢,我们需要简单不惧一下,让着一组(6个)伪造元素刚好重叠在真实输入框的下方。如下:

JS实现六位字符密码输入器功能 

边距实际是没有的啦~,途中只是为了看着更清晰一些。

另外,我们需要把顶层的真是输入框opcity设为0,这样其实呈现在用户面前的就是这一组伪造的输入框啦。

但是用户其实再输入的时候还是对真是输入框进行操作,在之后我们在讲用户的输入依次填写到伪造输入框里边就可以喽~

很简单吧~

二. 码代码

首先初始化各个DOM,以及绑定输入事件。

function init(fun){
var that = this;
this.callback = fun;
that.realInput = container.children[0];
that.bogusInput = container.children[1];
that.bogusInputArr = that.bogusInput.children;
that.maxLength = that.bogusInputArr[0].getAttribute("maxlength");
that.realInput.oninput = function(){
that.setValue();
}
that.realInput.onpropertychange = function(){
that.setValue();
}
}

然后在用户输入时分别将用户输入输入到伪造输入框中

function setValue(){
this.realInput.value = this.realInput.value.replace(/\D/g,"");
console.log(this.realInput.value.replace(/\D/g,""))
var real_str = this.realInput.value;
for(var i = 0 ; i < this.maxLength ; i++){
this.bogusInputArr[i].value = real_str[i]?real_str[i]:"";
}
if(real_str.length >= this.maxLength){
this.realInput.value = real_str.substring(0,6);
this.callback();
}
}

最后我们输入密码当然是要获取的啦~,来一个获取最终值的方法~

function getBoxInputValue(){
var realValue = "";
for(var i in this.bogusInputArr){
if(!this.bogusInputArr[i].value){
break;
}
realValue += this.bogusInputArr[i].value;
}
return realValue;
}

以上所述是小编给大家介绍的JS实现六位字符密码输入器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS 控制非法字符的输入代码
Dec 04 Javascript
jQuery入门问答 整理的几个常见的初学者问题
Feb 22 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
May 06 Javascript
基于jQuery的弹出框插件
Mar 18 Javascript
jquery通过a标签删除table中的一行的代码
Dec 02 Javascript
JQuery显示隐藏页面元素的方法总结
Apr 16 Javascript
详解React-Todos入门例子
Nov 08 Javascript
ES6学习笔记之Set和Map数据结构详解
Apr 07 Javascript
基于jquery.page.js实现分页效果
Jan 01 jQuery
vue移动UI框架滑动加载数据的方法
Mar 12 Javascript
Jquery Fade用法详解
Nov 06 jQuery
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 Vue.js
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
Aug 19 #Javascript
巧用jQuery选择器提高写表单效率的方法
Aug 19 #Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
Aug 19 #Javascript
JavaScript使用键盘输入控制实现数字验证功能
Aug 19 #Javascript
jQuery Validate插件实现表单验证
Aug 19 #Javascript
jQuery如何封装输入框插件
Aug 19 #Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
Aug 19 #Javascript
You might like
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
PHP会话控制实例分析
2016/12/24 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
JavaScript中常用的运算符小结
2012/01/18 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
理解JavaScript中Promise的使用
2016/01/18 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
python中MethodType方法介绍与使用示例
2017/08/03 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
Numpy与Pytorch 矩阵操作方式
2019/12/27 Python
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
施工工地安全标语
2014/06/07 职场文书
导师对论文的学术评语
2015/01/04 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
《开国大典》教学反思
2016/02/16 职场文书
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle