之前有分享过如何利用H5+Javascript生成验证码(点击看我之前的博客)。今天主要是想分享如何利用随机数来生成一组验证码,并通过js代码来验证输入的验证码是否匹配。
先看效果图:
实现的总体效果为:点击“验证按钮”或者是点击验证码本身,验证码会重新生成。
在输入框中输入任意与验证码不符的字符,则会提示“验证码输入错误”。
输入框中输入的字符(注意:这里是可以不区分大小写的)与验证码一致时,提示“输入正确”。
看看代码:
html代码(由于css样式较简单就没有专门提到css文件中去了):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
#code
{
font-family:Arial;
font-style:italic;
font-weight:bold;
border:0;
letter-spacing:2px;
color:blue;
}
</style>
<script type="text/javascript" src="js/jquery-2.1.1.min.js" ></script><!--随便引用的jq-->
<script type="text/javascript" src="js/checkCode.js" ></script><!--自己写的验证方法-->
</head>
<body>
<div>
<input type = "text" id="input1"/>
<input type = "button" id="code" />
<input type = "button" id="yz" value = "验证" />
</div>
</body>
</html>
checkCode.js代码:
var code ; //在全局定义验证码
//产生验证码
$(function(){
window.onload = createCode("#code");
$("#code").click(function(){
createCode("#code");
});
$("#yz").click(function(){
validate("#input1","#code");
});
});
//生成验证码
function createCode(code1){
code = "";
var codeLength = 4;//验证码的长度
var checkCode =$(code1);
var random = new Array(0,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','U','V','W','X','Y','Z');//随机数
for(var i = 0; i < codeLength; i++) {//循环操作
var index = Math.floor(Math.random()*36);//取得随机数的索引(0~35)
code += random[index];//根据索引取得随机数加到code上
}
checkCode.val(code);//把code值赋给验证码
}
//验证
function validate(txtinput,code1){
var inputCode = $(txtinput).val().toUpperCase(); //取得输入的验证码并转化为大写
if(inputCode.length <= 0) { //若输入的验证码长度为0
alert("请输入验证码!"); //则弹出请输入验证码
}
else if(inputCode != code ) { //若输入的验证码与产生的验证码不一致时
alert("验证码输入错误!"); //则弹出验证码输入错误
createCode(code1);//刷新验证码
$(txtinput).val("");//清空文本框
}
else { //输入正确时
alert("输入正确"); //弹出^-^
}
}