使用JS实现的可变动态密码输入键盘控件源代码
2016-08-16 10:40
573 查看
今天要分享的是一个简单的JavaScript编写和实现的可变动态密码输入控件,可以动态的生产数字键盘并显示,并且可以实现每次点击后密码键盘重新加载,可以手动控制隐藏和显示,手动控制刷新等功能。
相信经常登陆网上银行或者某些游戏网站的朋友应该会经常看到这个控件,其实实现起来原理并不复杂,主要是通过随机生产数字,然后通过hash算法,安排数字的位置,这里用了最简单的占位算法,虽然效率比较低(o(n^2)),但是处理10个数字(最差是55次)是足够的,如果带上字母键盘和特殊字符的话,建议更换算法。
优先占位算法初始动态密码键盘代码如下:
以下是全部的JS代码,因为是简单实现,所以就不做对象封装了
以下是动态密码输入控件演示地址
http://www.lidaren.com/code/jspassctrl/jspassctrl.html
以下是动态密码输入控件演示效果图
效果图1
效果图2
--------------------------------------------------------------------------------------
- 版权声明:
- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
- 文章标题:使用JS实现的可变动态密码输入键盘控件源代码
- 独立博客:李大仁博客
- 永久链接:http://www.lidaren.com/archives/699
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
相信经常登陆网上银行或者某些游戏网站的朋友应该会经常看到这个控件,其实实现起来原理并不复杂,主要是通过随机生产数字,然后通过hash算法,安排数字的位置,这里用了最简单的占位算法,虽然效率比较低(o(n^2)),但是处理10个数字(最差是55次)是足够的,如果带上字母键盘和特殊字符的话,建议更换算法。
优先占位算法初始动态密码键盘代码如下:
//初始化数字键盘 function initNum(line){ var strHtml = ""; var arr = new Array() if(line < 1 line > 10){ return; } //编制随机数组 while(arr.length < 10 br> //取0-9之间的整数 var num = Math.floor(10*Math.random()); //遍历数组找到空位 var flag = false; for(var i=0 ; i < arr length ibr> if(arr[i] == num){ flag = true; break; } } if(!flag){ arr[arr.length] = num; } }
以下是全部的JS代码,因为是简单实现,所以就不做对象封装了
//定义全局容器ID
var OBJID = "layerDisplay";
//对象选择器
function $(obj) {
return document.getElementById(obj);
}
//加载键盘控件
function load() {
var id = OBJID;
//控制内部HTML
$(id).innerHTML = "";
//重新加载空间库
$(id).innerHTML = getControl();
//显示
$(id).style.display = "block";
}
//隐藏
function hide(){
var id = OBJID;
$(id).style.display = "none";
}
//获取控件
function getControl(){
var strHtml = "";
//初始化键盘
strHtml += initNum(5);
//OK按钮
strHtml += "";
//隐藏按钮
strHtml += "";
//设置按钮并显示
return strHtml;
}
function addNum(obj){
var strVal = null;
//空对象
if(null == obj){
return;
}
//空字符串,或不合法字符串
strVal = obj.value;
if("" == strVal
|| 0 == strVal.length) {
return;
}
//追加字符
$("txtDisplay").value += strVal
//
load()
}//初始化数字键盘 function initNum(line){ var strHtml = ""; var arr = new Array() if(line < 1 line > 10){ return; } //编制随机数组 while(arr.length < 10 br> //取0-9之间的整数 var num = Math.floor(10*Math.random()); //遍历数组找到空位 var flag = false; for(var i=0 ; i < arr length ibr> if(arr[i] == num){ flag = true; break; } } if(!flag){ arr[arr.length] = num; } }//输出按钮列表
for(var i = 9; i >= 0 ; i --) {
strHtml += '
+ arr[i]
+ '\" onclick = \"addNum(this)\" />';
//控制换行
if(0 == (i % line)){
strHtml += '
';
}
}
return strHtml
以下是动态密码输入控件演示地址
http://www.lidaren.com/code/jspassctrl/jspassctrl.html
以下是动态密码输入控件演示效果图
效果图1
效果图2
--------------------------------------------------------------------------------------
- 版权声明:
- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
- 文章标题:使用JS实现的可变动态密码输入键盘控件源代码
- 独立博客:李大仁博客
- 永久链接:http://www.lidaren.com/archives/699
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
相关文章推荐
- JavaScript实现的可变动态数字键盘控件三种方式
- iOS无法使用自定义密码输入控件(自带键盘)
- JavaScript实现的可变动态数字键盘控件三种方式
- iOS无法使用自定义密码输入控件(自带键盘)
- iOS无法使用自定义密码输入控件(自带键盘)
- JavaScript实现的可变动态数字键盘控件三种方式
- JavaScript实现的可变动态数字键盘控件方式实例代码
- 【asp.net 】使用js结合hidden控件实现在后台运行一段程序后提示确认,确认通过后继续执行后台代码~~~
- VS2003 C#:重写键盘响应事件、动态创建控件、创建线程、在线程中使用委托在界面显示数据
- 使用JS实现倒计时(在页面上动态的显示)
- 一个JS图片放大镜,实现动态记录的图片放大,避免内存泄露,解决IE6下无法遮盖select控件问题
- 使用dwr实现下拉框级联和js实现动态选择option的selected状态方法总结
- 利用JS动态创建html控件并在后台实现取值
- 使用js动态创建控件的方法
- 使用expect 实现 scp 文件的时候不手动输入密码
- 关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
- asp使用js时间控件,实现下拉日历 解决UTF-8和GB2312的编码问题
- JS 动态增删元素 自定义验证控件的使用
- 关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
- 使用UI Automation实现自动化测试--7.1 (模拟键盘输入数据在自动化测试中的应用)