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 相关文章推荐
Javascript中的this绑定介绍
Sep 22 Javascript
两个数组去重的JS代码
Dec 04 Javascript
超简单JS二级、多级联动的简单实例
Feb 18 Javascript
JS和函数式语言的三特性
Mar 05 Javascript
Js保留小数点的4种效果实现代码分享
Apr 12 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
Aug 20 Javascript
JavaScript及jquey实现多个数组的合并操作
Sep 06 Javascript
bootstrap选项卡扩展功能详解
Jun 14 Javascript
Angular8 实现table表格表头固定效果
Jan 03 Javascript
Vue export import 导入导出的多种方式与区别介绍
Feb 12 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
Jun 04 Javascript
如何利用React实现图片识别App
Feb 18 Javascript
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中$_POST与php://input的区别实例分析
2015/01/07 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
深入理解Vue nextTick 机制
2018/04/28 Javascript
简单的三步vuex入门
2018/05/20 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
Python学习小技巧之列表项的拼接
2017/05/20 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
应届生服装设计自我评价
2013/09/20 职场文书
英语自荐信常用语句
2013/12/13 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
教师求职自荐信范文
2015/03/04 职场文书
大专护理专业自荐信
2015/03/25 职场文书
Python time库的时间时钟处理
2021/05/02 Python