<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>随机验证码简单制作</title> <style type="text/css"> body{margin: 0;padding: 0;} .auth-code{ display: inline-block; 100px; margin: 100px 0 0 100px; padding: 10px 16px 10px 10px; text-align: center; letter-spacing: 6px; background: #e3e3e3; cursor: pointer; } .auth-code+img{ height: 24px; position: relative; right: 28px; top: 6px; cursor: pointer; } </style> </head> <body> <!-- 验证码展示 --> <div class="wrap"><div class="auth-code">E2F7</div><img src="images/reload.png" alt="reload"></div> </body> <script type="text/javascript"> // 获取元素 var authCode = document.querySelector('.auth-code'); var reload = document.querySelector("img[alt=reload]"); //62个英文字母大小写加0-9数字的字符串 var theCodes = "abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789"; // 通过随机索引连续四次获取随机验证码 function getRanCodes(theCodes){ // 创建一个空的字符串来接收得到的四位验证码 var str = ""; for (var i = 0; i < 4; i++) { // 通过字符串中的charAt()方法获取每一个字符 str += theCodes.charAt(getRanIndex(0,62)); } authCode.innerHTML = str; } // 获取两个数字之间的随机索引随机索引 /*function getRanIndex(m,n){ // 将传入的参数转换成数值类型 var num1 = Number(m); var num2 = Number(n); // 判断转换后的参数是否是NaN if(isNaN(num1) || isNaN(num2)){ // 返回索引0-61,向下取整 return Math.floor(Math.random()*62); }else{ // 如果不是NaN就根据m和n的大小返回m-n之间的随机索引 return (m > n) ? Math.floor(Math.random()*(m-n)) + m : Math.floor(Math.random()*(n-m)); } } */ function getRanIndex(m,n){ // 如果不是NaN就根据m和n的大小返回m-n之间的随机索引 return (m > n) ? Math.floor(Math.random()*(m-n)) + m : Math.floor(Math.random()*(n-m)); } // 调用函数刷新页面获取验证码 getRanCodes(theCodes); // 点击验证码,刷新 /* authCode.onclick = function(){ getRanCodes(theCodes); } */ authCode.onclick = reload.onclick = function(){ getRanCodes(theCodes); } </script> </html>