1、现在注册成功之后,我们来到登录页面,登录页面在于
在登录页面。我们也需要向注册页面一样对登录的用户名、密码 验证码等在jsp页面中进行校验,校验我们单独放置一个login.js文件中进行处理,然后login.jsp加载该js文件
我们来看看login.js的代码和regist.js的代码一样,这里就不用花太多时间进行介绍
$(function() { /* * 1. 让登录按钮在得到和失去焦点时切换图片 */ $("#submit").hover( function() { $("#submit").attr("src", "/goods/images/login2.jpg"); }, function() { $("#submit").attr("src", "/goods/images/login1.jpg"); } ); /* * 2. 给注册按钮添加submit()事件,完成表单校验 */ $("#submit").submit(function(){ $("#msg").text(""); var bool = true; $(".input").each(function() { var inputName = $(this).attr("name"); if(!invokeValidateFunction(inputName)) { bool = false; } }); return bool; }); /* * 3. 输入框得到焦点时隐藏错误信息 */ $(".input").focus(function() { var inputName = $(this).attr("name"); $("#" + inputName + "Error").css("display", "none"); }); /* * 4. 输入框推动焦点时进行校验 */ $(".input").blur(function() { var inputName = $(this).attr("name"); invokeValidateFunction(inputName); }) }); /* * 输入input名称,调用对应的validate方法。 * 例如input名称为:loginname,那么调用validateLoginname()方法。 */ function invokeValidateFunction(inputName) { inputName = inputName.substring(0, 1).toUpperCase() + inputName.substring(1); var functionName = "validate" + inputName; return eval(functionName + "()"); } /* * 校验登录名 */ function validateLoginname() { var bool = true; $("#loginnameError").css("display", "none"); var value = $("#loginname").val(); if(!value) {// 非空校验 $("#loginnameError").css("display", ""); $("#loginnameError").text("用户名不能为空!"); bool = false; } else if(value.length < 3 || value.length > 20) {//长度校验 $("#loginnameError").css("display", ""); $("#loginnameError").text("用户名长度必须在3 ~ 20之间!"); bool = false; } return bool; } /* * 校验密码 */ function validateLoginpass() { var bool = true; $("#loginpassError").css("display", "none"); var value = $("#loginpass").val(); if(!value) {// 非空校验 $("#loginpassError").css("display", ""); $("#loginpassError").text("密码不能为空!"); bool = false; } else if(value.length < 3 || value.length > 20) {//长度校验 $("#loginpassError").css("display", ""); $("#loginpassError").text("密码长度必须在3 ~ 20之间!"); bool = false; } return bool; } /* * 校验验证码 */ function validateVerifyCode() { var bool = true; $("#verifyCodeError").css("display", "none"); var value = $("#verifyCode").val(); if(!value) {//非空校验 $("#verifyCodeError").css("display", ""); $("#verifyCodeError").text("验证码不能为空!"); bool = false; } else if(value.length != 4) {//长度不为4就是错误的 $("#verifyCodeError").css("display", ""); $("#verifyCodeError").text("错误的验证码!"); bool = false; } else {//验证码是否正确 $.ajax({ cache: false, async: false, type: "POST", dataType: "json", data: {method: "validateVerifyCode", verifyCode: value}, url: "/goods/UserServlet", success: function(flag) { if(!flag) { $("#verifyCodeError").css("display", ""); $("#verifyCodeError").text("错误的验证码!"); bool = false; } } }); } return bool; }
我们来看login.jsp的代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>登录</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <link rel="stylesheet" type="text/css" href="<c:url value='/jsps/css/user/login.css'/>"> <script type="text/javascript" src="<c:url value='/jquery/jquery-1.5.1.js'/>"></script> <script src="<c:url value='/js/common.js'/>"></script> <!-- 引入login.js文件 --> <script type="text/javascript" src="<c:url value='/jsps/js/user/login.js'/>"></script> </head> <body> <div class="main"> <div><img src="<c:url value='/images/logo.gif'/>" /></div> <div> <div class="imageDiv"><img class="img" src="<c:url value='/images/zj.png'/>"/></div> <div class="login1"> <div class="login2"> <div class="loginTopDiv"> <span class="loginTop">传智会员登录</span> <span> <a href="<c:url value='/jsps/user/regist.jsp'/>" class="registBtn"></a> </span> </div> <div> <form target="_top" action="<c:url value='/index.jsp'/>" method="post" id="loginForm"> <input type="hidden" name="method" value="" /> <table> <tr> <td width="50"></td> <td><label class="error" id="msg"></label></td> </tr> <tr> <td width="50">用户名</td> <td><input class="input" type="text" name="loginname" id="loginname"/></td> </tr> <tr> <td height="20"> </td> <td><label id="loginnameError" class="error"></label></td> </tr> <tr> <td>密 码</td> <td><input class="input" type="password" name="loginpass" id="loginpass"/></td> </tr> <tr> <td height="20"> </td> <td><label id="loginpassError" class="error"></label></td> </tr> <tr> <td>验证码</td> <td> <input class="input yzm" type="text" name="verifyCode" id="verifyCode" value=""/> <img id="vCode" src="<c:url value='/VerifyCodeServlet'/>"/> <a id="verifyCode">换张图</a> </td> </tr> <tr> <td height="20px"> </td> <td><label id="verifyCodeError" class="error"></label></td> </tr> <tr> <td> </td> <td align="left"> <input type="image" id="submit" src="<c:url value='/images/login1.jpg'/>" class="loginBtn"/> </td> </tr> </table> </form> </div> </div> </div> </div> </div> </body> </html>
我们来看程序运行的效果: