4位随机简单验证码的JS实现
2018-01-29 21:39
836 查看
验证码是用来区分人和计算机的,通常通过模糊字符、拼图等形式达到让人能看懂且计算机无法识别的效果。我们采用验证码是为了防止机器不断登录的现象,比如现实生活中的刷票、刷帖、灌水等。在本篇用JS实现4位简单网页验证码,当然这是最基础的验证码,安全性比较低。
以下是HTML的代码:
<body onload="createCode()">
<form>
<ce
4000
nter>验证码:
<input type="text" id="input1" />
<input type="text" id="checkNode" class="code" style="width: 55px" disabled="disabled" />
<a href="#" onclick="createCode()">看不清楚,换一张</a><br/>
<input type="button" name="button1" onclick="validate()" value="确定" />
</center>
</form>
</body>
给呈现验证码的文本框添加 disabled="disabled",将验证码设置为可读不可写。
以下是CSS的代码,是对验证码加的样式:<style type="text/css">
.code{
background-image: url(securityCodeBackground2.png);/* 验证码的背景图 */
font-family: Arial;
font-style: italic;
color: black;
border: 0;
padding:2px 3px;
letter-spacing: 3px;
font-weight: bolder;
text-align: center;
}
</style>
设置验证码在文本框中居中。
以下是JS代码:
<script type="text/javascript">
/*在页面加载完成时生成一个随机的验证码*/
window.onload=function(){
createCode();
}
var code;/*定义一个验证码的全局变量*/
function createCode(){/* 生成验证码的函数 */
code="";
var codeLength=4;
var checkCode=document.getElementById("checkNode");
checkCode.value="";
var selectChar=new Array(1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
for(var i=0;i<codeLength;i++){
var charIndex=Math.floor(Math.random()*61);
code+ = selectChar[charIndex];
}
if (code.length != codeLength) {
createCode();
}
checkCode.value=code;
}
function validate() {/* 检验输入的验证码的正确性 */
var inputCode = document.getElementById("input1").value.toUpperCase();
var codeToUp=code.toUpperCase();
if(inputCode.length<=0){
alert("请输入验证码!");
return false;
}
else if(inputCode != codeToUp){
alert("验证码输入错误!");
createCode();
return false;
}
else{
alert("输入正确,输入的验证码为:"+inputCode);
return true;
}
}
</script>红笔标出来的地方是我出错的地方,第一处是把id传错了,结果是不会生成验证码;第二处是在CSS中把input1写成了name的属性值,没有写id,结果是不会对用户的输入产生反应。初写JS代码,被这些笔误害惨了,花了很多时间才找到错误。以后还是应该先在火狐浏览器中调试,firebug真心对调试JS代码非常好用,花几个小时也找不到的bug一下就找出来了。
这是JS的第一篇文章,从此要打开编写JS的大门啦,,,
文章中部分内容有来自网络的借鉴
以下是HTML的代码:
<body onload="createCode()">
<form>
<ce
4000
nter>验证码:
<input type="text" id="input1" />
<input type="text" id="checkNode" class="code" style="width: 55px" disabled="disabled" />
<a href="#" onclick="createCode()">看不清楚,换一张</a><br/>
<input type="button" name="button1" onclick="validate()" value="确定" />
</center>
</form>
</body>
给呈现验证码的文本框添加 disabled="disabled",将验证码设置为可读不可写。
以下是CSS的代码,是对验证码加的样式:<style type="text/css">
.code{
background-image: url(securityCodeBackground2.png);/* 验证码的背景图 */
font-family: Arial;
font-style: italic;
color: black;
border: 0;
padding:2px 3px;
letter-spacing: 3px;
font-weight: bolder;
text-align: center;
}
</style>
设置验证码在文本框中居中。
以下是JS代码:
<script type="text/javascript">
/*在页面加载完成时生成一个随机的验证码*/
window.onload=function(){
createCode();
}
var code;/*定义一个验证码的全局变量*/
function createCode(){/* 生成验证码的函数 */
code="";
var codeLength=4;
var checkCode=document.getElementById("checkNode");
checkCode.value="";
var selectChar=new Array(1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
for(var i=0;i<codeLength;i++){
var charIndex=Math.floor(Math.random()*61);
code+ = selectChar[charIndex];
}
if (code.length != codeLength) {
createCode();
}
checkCode.value=code;
}
function validate() {/* 检验输入的验证码的正确性 */
var inputCode = document.getElementById("input1").value.toUpperCase();
var codeToUp=code.toUpperCase();
if(inputCode.length<=0){
alert("请输入验证码!");
return false;
}
else if(inputCode != codeToUp){
alert("验证码输入错误!");
createCode();
return false;
}
else{
alert("输入正确,输入的验证码为:"+inputCode);
return true;
}
}
</script>红笔标出来的地方是我出错的地方,第一处是把id传错了,结果是不会生成验证码;第二处是在CSS中把input1写成了name的属性值,没有写id,结果是不会对用户的输入产生反应。初写JS代码,被这些笔误害惨了,花了很多时间才找到错误。以后还是应该先在火狐浏览器中调试,firebug真心对调试JS代码非常好用,花几个小时也找不到的bug一下就找出来了。
这是JS的第一篇文章,从此要打开编写JS的大门啦,,,
文章中部分内容有来自网络的借鉴
相关文章推荐
- js实现随机数字字母验证码
- js实现简单随机抽奖的方法
- Angular.js实现获取验证码倒计时60秒按钮的简单方法
- js实现简单的获取验证码按钮效果
- node.js在服务端实现简单的验证码--captchapng
- Python(6) 实现一个简单的随机验证码生成器
- 简单的随机生成4个数字验证码的实现
- 原生js实现数字字母混合验证码的简单实例
- JS 实现随机验证码功能
- js实现简单的验证码
- JS实现随机验证码功能
- JS 实现随机验证码功能
- JS实现简单短信验证码界面
- 表单中的验证码通过js简单实现局部刷新效果
- 基于JS的简单算术题式验证码的实现
- 通过js 实现简单验证码的 刷新 看不清 换一张
- 通过js 实现简单验证码的 刷新 看不清 换一张
- 简单实现验证码随机数(其实原理很简单就是一堆图片,然后点击随机改变图片的src属性)
- js 实现随机验证码
- 通过js 实现简单验证码的 刷新 看不清 换一张