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 鼠标拖动对象 可让任何div实现拖动效果
Nov 09 Javascript
游览器中javascript的执行过程(图文)
May 20 Javascript
AngularJS初始化静态模板详解
Jan 14 Javascript
基于js实现的限制文本框只可以输入数字
Dec 05 Javascript
jQuery Ajax实现跨域请求
Jan 21 Javascript
JavaScript实现自动跳转文本功能
May 25 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
Aug 14 Javascript
Vue 中使用 typescript的方法详解
Feb 17 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
Jul 13 Javascript
javascript实现京东登录显示隐藏密码
Aug 02 Javascript
VUE-ElementUI 自定义Loading图操作
Nov 11 Javascript
Vue 实现可视化拖拽页面编辑器
Feb 01 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留言本源码
2009/11/11 PHP
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
2020/01/26 PHP
javascript数组使用调用方法汇总
2007/12/08 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
Python实现的一个简单LRU cache
2014/09/26 Python
在Linux下调试Python代码的各种方法
2015/04/17 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
Python基于递归实现电话号码映射功能示例
2018/04/13 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
python 剪切移动文件的实现代码
2018/08/02 Python
对Python3 序列解包详解
2019/02/16 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
教师工作失职检讨书
2014/09/18 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
大学生逃课检讨书
2015/05/04 职场文书
六一亲子活动感想
2015/08/07 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
公历12个月名称的由来
2022/04/12 杂记