纯前端实现—网页验证码

举报
孤寒者 发表于 2021/12/08 22:51:36 2021/12/08
【摘要】 实现效果: 1.通过页面刷新以及鼠标点击验证码区域可以实现验证码的刷新; 2.实现常规验证码的操作。如果你不输入验证码会告诉你让你输入;如果输入错误也会提醒你;当你输入正确无误会庆祝哦! 源码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>验证码</title> <style> ...

实现效果:

1.通过页面刷新以及鼠标点击验证码区域可以实现验证码的刷新;

2.实现常规验证码的操作。如果你不输入验证码会告诉你让你输入;如果输入错误也会提醒你;当你输入正确无误会庆祝哦!

源码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>验证码</title>
    <style>
        .code {
            width: 120px;
            height: 50px;
            background-color: pink;
            display: inline-block;
            text-align: center;
            line-height: 50px;
            letter-spacing: 10px;
            font-style: italic;
            /*使鼠标放在上面的时候将鼠标的图标变成一个小手*/
            cursor: pointer;
        }

        a {
            text-decoration: none;
            color: #baff4d;
        }

        a:hover {
            text-decoration: underline;
        }

        input {
            height: 30px;
            /*设置圆角框*/
            border-radius: 5px;
            border: 1px solid grey;
        }

        button {
            height: 30px;
            background-color: #baff4d;
            border: 1px solid grey;
            border-radius: 5px;
        }
    </style>
</head>
<body onload="createCode()">          <!--onload当页面或者图像加载完之后立即执行-->
<div class="code" onclick="createCode()"></div>
<a href="#" onclick="createCode()">看不清换一张</a><br>
<input type="text" placeholder="请输入验证码">
<button onclick="checkCode()">确定</button>

<script>
    // 生成验证码的函数
    var code;
    function createCode() {
        code = "";            //验证码的初始值
        var codeLength = 4;   //验证码的长度
        // 验证码的组成成分
        var codeChars = 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', '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 charNum = Math.floor(Math.random()*62);
            // 验证码
            code += codeChars[charNum];
        }
        document.getElementsByClassName("code")[0].innerText = code;
    }
    // 验证验证码的函数
    function checkCode() {
        // 获取输入的值
        var inputCode = document.getElementsByTagName("input")[0].value;
        // 判断验证码是否输入正确
        if (inputCode.length<=0){
            alert("请输入验证码!");
        }else if(inputCode.toUpperCase() != code.toUpperCase()){
            alert("验证码输入有误!");
            // 更新验证码
            createCode();
            // 清空输入框
            document.getElementsByTagName("input")[0].value = "";
        }else{
            alert("验证码输入正确")
        }
    }

</script>

</body>
</html>
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。