Html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="./code.css">
</head>
<body>
<div class="wrapper">
<div class="inputBox">
<input type="text" placeholder="请输入验证码">
<span></span>
</div>
<p class="error">验证码输入错误,请重新输入</p>
<div class="canvansBox">
<canvas id="myCanvans" width="300" height="80"></canvas>
<div id="refresh"></div>
</div>
<button id="submitBtn">submit</button>
</div>
<script src="../js/jquery.js"></script>
<script src="./code.js"></script>
</body>
</html>
CSS部分:
*{
margin: 0;
padding: 0;
}
.wrapper{
width: 400px;
height: 240px;
border: 3px solid #ccc;
margin: 10px;
}
.inputBox{
width: 92%;
margin-left: 4%;
height: 60px;
/* border: 1px solid black; */
display: flex;
/* justify-content: center; */
align-items: center;
}
.inputBox input{
padding: 10px;
width: 300px;
border: 2px solid #ccc;
border-radius: 5px;
/* border: none; */
}
.inputBox span{
/* display: inline-block; */
width: 30px;
height: 30px;
background: url('./error.png');
background-size: 100%;
margin-left: 6px;
display: none;
}
.error{
margin-left: 5%;
margin-top: 10px;
font-size: 14px;
color: red;
display: none;
}
.canvansBox{
width: 92%;
/* border: 1px solid black; */
margin-left: 3%;
margin-top: 10px;
display: flex;
justify-content: center;
align-items: center;
}
#refresh{
width: 32px;
height: 32px;
background: url('./refresh.png');
background-size: 100%;
margin-left: 30px;
cursor: pointer;
}
#submitBtn{
padding: 10px ;
font-size: 20px;
background: cornflowerblue;
border: none;
border-radius: 5px;
margin-left: 3%;
margin-top: 10px;
cursor: pointer;
}
JS部分:
$(document).ready(function(){
var arr = [];
for(var i = 65; i < 122; i++){
if(i > 90 && i < 97){
continue;
}
arr.push(String.fromCharCode(i));
}
var value;
function createCanvas(){
var canvasStr = '';
value = '';
for(var i = 0 ; i < 6; i++){
var a = arr[Math.floor(Math.random() * arr.length)];
canvasStr += a + '';
// console.log(canvasStr)
value += a;
}
//生成验证码区域
var myCanvas = document.getElementById('myCanvans');
if(!myCanvas.getContext) return;
var ctx = myCanvas.getContext('2d');
var oImg = new Image();
oImg.src = './square.jpg';
oImg.onload = function(){
var pattern = ctx.createPattern(oImg,'repeat');
ctx.fillStyle = pattern;
ctx.fillRect(0,0,myCanvas.clientWidth,myCanvas.height);
ctx.textAlign = 'center';
ctx.fillStyle = '#ccc';
ctx.font = '50px Roboto Slab';
ctx.setTransform(1,-0.12,0.3,1,0,12);
ctx.fillText(canvasStr,myCanvas.width/2,60);
}
}
createCanvas();
$('#submitBtn').on('click',function(){
showResult();
})
$('#refresh').on('click',function(){
createCanvas();
})
function showResult(){
var inputValue = $('.inputBox input').val();
console.log(inputValue);
if(value == inputValue){
$('.inputBox span').css({
background:'url("./true.png")',
display:'inline-block'
})
// $('.inputBox img').css({
// background:'url("./error.png")',
// display:'none'
// })
createCanvas();
}else{
$('.error').css({
display:'block'
})
$('.inputBox span').css({
background:'url("./error.png")',
display:'inline-block'
})
// $('.inputBox img').css({
// background:'url("./true.png")',
// display:'none'
// })
createCanvas();
}
}
})
效果图:
验证码输入正确:
输入正确与错误验证码都会重新刷新
验证码输入错误