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调用Session的实现代码
Oct 29 Javascript
用js实现控件的隐藏及style.visibility的使用
Jun 14 Javascript
jQuery 事件的命名空间简单了解
Nov 22 Javascript
TypeScript 中接口详解
Jun 19 Javascript
移动端JQ插件hammer使用详解
Jul 03 Javascript
详解Angualr 组件间通信
Jan 21 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
Jul 11 Javascript
ES6 中可以提升幸福度的小功能
Aug 06 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
Nov 05 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
Jan 22 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
Jul 10 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应用技巧
2008/03/27 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
python 爬虫请求模块requests详解
2020/12/04 Python
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
HTML5图片预览实例分享
2014/06/04 HTML / CSS
韩都衣舍天猫官方旗舰店:天猫女装销售总冠军
2017/10/10 全球购物
实习自我鉴定范文
2013/10/30 职场文书
2014年新生军训方案
2014/05/01 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
社区维稳工作方案
2014/06/06 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
劳模事迹材料范文
2014/12/24 职场文书
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP