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 24 Javascript
jQuery提交多个表单的小例子
Jun 30 Javascript
html的DOM中document对象images集合用法实例
Jan 21 Javascript
js实现数组转换成json
Jun 26 Javascript
JavaScript常用标签和方法总结
Sep 01 Javascript
解决js图片加载时出现404的问题
Nov 30 Javascript
纯JS代码实现气泡效果
May 04 Javascript
jQuery ajax请求struts action实现异步刷新
Apr 19 jQuery
vue源码学习之Object.defineProperty 对数组监听
May 30 Javascript
angular 数据绑定之[]和{{}}的区别
Sep 25 Javascript
js实现旋转木马轮播图效果
Jan 10 Javascript
vue+swiper实现左右滑动的测试题功能
Oct 30 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
基于mysql的论坛(6)
2006/10/09 PHP
SSI指令
2006/11/25 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
python安装教程
2018/02/28 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
python中wheel的用法整理
2020/06/15 Python
python脚本定时发送邮件
2020/12/22 Python
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
我的中国梦演讲稿高中篇
2014/08/19 职场文书
社区好人好事材料
2014/12/26 职场文书
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫