简单验证码实现

本文介绍了一个简单的验证码生成及验证过程,包括HTML页面布局、CSS样式设置及JavaScript代码实现。通过前端技术实现动态生成验证码,并提供了验证码的有效性校验。

1、first.jsp页面代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>    
<html> 
    <head> 
        <title>验证码</title> 
        <meta http-equiv='content-type' content='text/html;charset=utf-8'/>
        <link href="${pageContext.request.contextPath}/statics/localcss/first.css" rel="stylesheet"> 
        <script type='text/javascript' src='jquery-1.7.2.js'></script> 
           <script  type="text/javascript" 
            src="${pageContext.request.contextPath}/statics/localjs/first.js"></script>
    
    </head> 
    <body onload='createCode()'> 
    <div> 
            用户名:<input type="text" name="loginCode" placeholder="请输入用户名"/><br/>
         密   码:<input type="password" name="password" placeholder="请输入密码"/><br/>
                      验证码:<input type = "text" id = "input" placeholder="请输入验证码"/>   
            <input type="button" id="code" onclick="createCode()" title='点击更换验证码' /> 
            <input type = "button" value = "验证" onclick = "validate()"/> 
        </div>   
    </body> 
</html> 

2、添加样式

#code{ 
font-family:Arial,宋体; 
font-style:italic; 
color:green; 
border:0; 
padding:2px 3px; 
letter-spacing:3px; 
font-weight:bolder; 
width:60px;
background-image: url("${pageContext.request.contextPath }/statics/img/761658199044341639.jpg")   //背景图片可以自己设置
}

3、first.js

var code; //在全局定义验证码   

function createCode() {
    code = "";
    var codeLength = 4;//验证码的长度   
    var checkCode = document.getElementById("code");
    var random = 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');//随机数   
    for ( var i = 0; i < codeLength; i++) {//循环操作   
        var index = Math.floor(Math.random() * 36);//取得随机数的索引(0~35)   
        code += random[index];//根据索引取得随机数加到code上   
    }
    checkCode.value = code;//把code值赋给验证码   
}
//校验验证码   
function validate() {
    var inputCode = document.getElementById("input").value.toUpperCase(); //取得输入的验证码并转化为大写         
    if (inputCode.length <= 0) { //若输入的验证码长度为0   
        alert("请输入验证码!"); //则弹出请输入验证码   
    } else if (inputCode != code) { //若输入的验证码与产生的验证码不一致时   
        alert("验证码输入错误!@_@"); //则弹出验证码输入错误   
        createCode();//刷新验证码   
        document.getElementById("input").value = "";//清空文本框   
    } else { //输入正确时   
        alert("合格!^-^");
    }
}

 

转载于:https://www.cnblogs.com/yutianbao/p/9191166.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值