<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" name="" id="codeInp">
<span id="codeBox"></span>
<button id="changeCode">看不清换一张</button>
<script>
let codeInp = document.getElementById('codeInp'),
codeBox = document.getElementById('codeBox'),
changeCode = document.getElementById('changeCode');
/*
queryCode 获取到四位随机的验证码
@params
@return
*/
function queryCode(){
let area = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
let result ='';
for(let i=0;i<4;i++){
//每一次循环都获取一个随机的数字索引
let ran = Math.round(Math.random()*61);
//再根据获取的索引从范围字符串中找到对应的字符,把找到的字符拼接到最后的结果中
result += area.charAt(ran);
//然后放到盒子里面
codeBox.innerHTML=result;
}
}
//第一次加载页面需要执行方法,让其显示在页面中
queryCode();
//点击看不清按钮,需要重新执行方法生成新的验证码
changeCode.onclick=queryCode;
//文本框失去焦点的时候,验证用户输入的内容和验证码是否相同,给予相关的提示,如果不一样需要重新生成验证码
//onblur:文本框失去焦点事件
codeInp.onblur=function(){
//获取用户和验证码内容(表单元素.value/非标单元素.innerHTML获取内容)
let val = codeInp.value,
code = codeBox.innerHTML;
//不区分大小写的验证
if(val.toLowerCase() === code.toLowerCase()){
alert('温馨提示:验证码输入成功')
}else{
alert('温馨提示:验证码输入有误,请重试!')
codeInp.value='';
queryCode();
}
}
</script>
</body>
</html>