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 相关文章推荐
Mootools 1.2教程 Fx.Tween的使用
Sep 15 Javascript
js控制CSS样式属性语法对照表
Dec 11 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
Nov 01 Javascript
jQuery 获取兄弟元素的几种不错方法
May 23 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
Sep 22 Javascript
Vuejs实现带样式的单文件组件新方法
May 02 Javascript
基于jQuery实现的设置文本区域的光标位置
Jun 15 jQuery
RequireJS用法简单示例
Aug 20 Javascript
vue实现前台列表数据过滤搜索、分页效果
May 28 Javascript
websocket4.0+typescript 实现热更新的方法
Aug 14 Javascript
继承行为在 ES5 与 ES6 中的区别详解
Dec 24 Javascript
JavaScript实现页面动态验证码的实现示例
Mar 23 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中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
Bootstrap实现下拉菜单效果
2016/04/29 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
Angular2开发——组件规划篇
2017/03/28 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
JS中的事件委托实例浅析
2018/03/22 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
Python实现爬取逐浪小说的方法
2015/07/07 Python
在Django中进行用户注册和邮箱验证的方法
2016/05/09 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
python中提高pip install速度
2020/02/14 Python
Python程序慢的重要原因
2020/09/04 Python
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书