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 相关文章推荐
javascript的函数
Jan 31 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
Jul 25 Javascript
return false;和e.preventDefault();的区别
Jul 11 Javascript
JS实现距离上次刷新已过多少秒示例
May 23 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
详解JavaScript编程中的数组结构
Oct 24 Javascript
javascript 判断是否是微信浏览器的方法
Oct 09 Javascript
JS点击动态添加标签、删除指定标签的代码
Apr 18 Javascript
Vue项目中如何使用Axios封装http请求详解
Oct 23 Javascript
vue子传父关于.sync与$emit的实现
Nov 05 Javascript
js实现鼠标点击页面弹出自定义文字效果
Dec 24 Javascript
jQuery表单校验插件validator使用方法详解
Feb 18 jQuery
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/06/06 PHP
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
php输入数据统一类实例
2015/02/23 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
js密码强度校验
2015/11/10 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
js仿腾讯QQ的web登陆界面
2016/08/19 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
ReactNative Image组件使用详解
2017/08/07 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
用vite搭建vue3应用的实现方法
2021/02/22 Vue.js
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
python实现电子词典
2020/04/23 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
python dict如何定义
2020/09/02 Python
python math模块的基本使用教程
2021/01/16 Python
Html5实现iPhone开机界面示例代码
2013/06/30 HTML / CSS
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
教你打造完美的创业计划书
2014/01/06 职场文书
五型班组建设方案
2014/02/10 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
局机关干部群众路线个人对照检查材料思想汇报
2014/10/05 职场文书
欢迎家长标语
2014/10/08 职场文书
浅析Python实现DFA算法
2021/06/26 Python
Go并发4种方法简明讲解
2022/04/06 Golang