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 相关文章推荐
jquery特效 幻灯片效果示例代码
Jul 16 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
Dec 25 Javascript
关于Javascript中document.cookie的使用
Mar 08 Javascript
基于JavaScript实现无限加载瀑布流
Jul 21 Javascript
JS实现简单表格排序操作示例
Oct 07 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
Dec 22 Javascript
vue组件传递对象中实现单向绑定的示例
Feb 28 Javascript
angular实现页面打印局部功能的思考与方法
Apr 13 Javascript
什么时候不能在 Node.js 中使用 Lock Files
Jun 24 Javascript
electron实现静默打印的示例代码
Aug 12 Javascript
JS面向对象编程实现的Tab选项卡案例详解
Mar 03 Javascript
全面解析JavaScript Module模式
Jul 24 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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
PHP5 安装方法
2006/10/09 PHP
台湾中原大学php教程孙仲岳主讲
2008/01/07 PHP
php 小乘法表实现代码
2009/07/16 PHP
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
Python Deque 模块使用详解
2014/07/04 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
python判断变量是否为列表的方法
2020/09/17 Python
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
迪奥官网:Dior.com
2018/12/04 全球购物
体育老师的教学自我评价分享
2013/11/19 职场文书
市场营销管理制度
2014/01/29 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
《大海那边》教学反思
2014/04/09 职场文书
给老婆的道歉信
2015/01/20 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python