1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Document</title>
    8. </head>
    9. <body>
    10. <input type="text" name="" id="codeInp">
    11. <span id="codeBox"></span>
    12. <button id="changeCode">看不清换一张</button>
    13. <script>
    14. let codeInp = document.getElementById('codeInp'),
    15. codeBox = document.getElementById('codeBox'),
    16. changeCode = document.getElementById('changeCode');
    17. /*
    18. queryCode 获取到四位随机的验证码
    19. @params
    20. @return
    21. */
    22. function queryCode(){
    23. let area = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
    24. let result ='';
    25. for(let i=0;i<4;i++){
    26. //每一次循环都获取一个随机的数字索引
    27. let ran = Math.round(Math.random()*61);
    28. //再根据获取的索引从范围字符串中找到对应的字符,把找到的字符拼接到最后的结果中
    29. result += area.charAt(ran);
    30. //然后放到盒子里面
    31. codeBox.innerHTML=result;
    32. }
    33. }
    34. //第一次加载页面需要执行方法,让其显示在页面中
    35. queryCode();
    36. //点击看不清按钮,需要重新执行方法生成新的验证码
    37. changeCode.onclick=queryCode;
    38. //文本框失去焦点的时候,验证用户输入的内容和验证码是否相同,给予相关的提示,如果不一样需要重新生成验证码
    39. //onblur:文本框失去焦点事件
    40. codeInp.onblur=function(){
    41. //获取用户和验证码内容(表单元素.value/非标单元素.innerHTML获取内容)
    42. let val = codeInp.value,
    43. code = codeBox.innerHTML;
    44. //不区分大小写的验证
    45. if(val.toLowerCase() === code.toLowerCase()){
    46. alert('温馨提示:验证码输入成功')
    47. }else{
    48. alert('温馨提示:验证码输入有误,请重试!')
    49. codeInp.value='';
    50. queryCode();
    51. }
    52. }
    53. </script>
    54. </body>
    55. </html>