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两行代码按指定格式输出日期时间
Oct 21 Javascript
JavaScript中的面向对象介绍
Jun 30 Javascript
在浏览器窗口上添加遮罩层的方法
Nov 12 Javascript
jquery在Chrome下获取图片的长宽问题解决
Mar 20 Javascript
JavaScript中奇葩的假值示例应用
Mar 11 Javascript
js判断变量初始化的三种形式及推荐用的形式
Jul 22 Javascript
Html中 IFrame的用法及注意点
Dec 22 Javascript
Jquery鼠标放上去显示全名的实现方法
Feb 06 Javascript
详解JavaScript 中 if / if...else...替换方式
Jul 15 Javascript
微信小程序支付前端源码
Aug 29 Javascript
vue-cli和v-charts实现可视化图表过程解析
Oct 08 Javascript
浅谈javascript事件环微任务和宏任务队列原理
Sep 12 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
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
PHP获取文件后缀名的三个函数
2012/10/15 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
php计算函数执行时间的方法
2015/03/20 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
jquery获取tagName再进行判断
2014/05/29 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
2019/04/17 Javascript
vue实现分页栏效果
2019/06/28 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
Python完全新手教程
2007/02/08 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
python实现浪漫的烟花秀
2019/01/30 Python
python将字符串转换成json的方法小结
2019/07/09 Python
简单了解django索引的相关知识
2019/07/17 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
python/golang 删除链表中的元素
2020/09/14 Python
工作中的自我评价如何写好
2013/10/28 职场文书
英文版网络工程师求职信
2013/10/28 职场文书
财务会计应届生求职信
2013/11/24 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
保险公司开门红口号
2014/06/21 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
员工离职证明范本
2015/06/12 职场文书
中秋节主题班会
2015/08/14 职场文书
python中redis包操作数据库的教程
2022/04/19 Python