JavaWeb网上图书商城完整项目--day02-6.ajax校验功能之页面实现

1 、现在我们要在regist.js中实现ajax的功能,使用用户名到后台查询是否注册,邮箱是否到后台注册,验证码是否正确的功能

我们来看regist.js的代码

//该函数在html文档加载完成之后会调用
$(function() {
    /*
     * 变量所有的错误信息,调用一个方法来决定是否显示错误信息
     * */
    $(".errorClass").each(function() {
        showError($(this));//$(this)表示当前遍历的对象
    });

    //切换注册按钮的图片
    $("#submitBtn").hover(function () {
        //获得光标焦点
        $("#submitBtn").attr("src","/goods/images/regist2.jpg");
    },function(){
        //失去光标的焦点
        $("#submitBtn").attr("src","/goods/images/regist1.jpg");

    });

    //当输入框获得焦点的时候,隐藏label标签的内容
    $(".inputClass").focus(function() {
        //首先获得label标签的id
        var inputId = $(this).attr("id");
        var labelId = inputId+"Error";//label的id
        //清楚该标签的内容
        $("#"+labelId).text("");
        //让该标签不显示
        showError($("#"+labelId));
    });
    //当输入框失去焦点的时候,我们需要对输入的数据进行有效的校验,比如输入的电话号码是否合法,邮箱是否合法
    $(".inputClass").blur(function() {
        //首先判断当前是那个input输入框被调用了
        var inputId = $(this).attr("id");
        //;
        //调用对应的校验方法
        var functionName = "validate"+inputId;//获得需要调用的验证函数,如果是id为loginname,就调用validateloginname()函数进行验证
        switch(functionName){
        case "validateloginname":
            validateloginname();
            break;
        case "validateloginpass":
            validateloginpass();
            break;
        case "validatereloginrepass":
            validatereloginrepass();
            break;
        case "validateemail":
            validateemail();
            break;
        case "validateverifyCode":
            validateverifyCode();
            break;
        default:
            break;
        }
    });

    //对表单的提交进行校验
    $("#registForm").submit(function() {
        if(! validateloginname()){
            return false;
        }
        if(! validateloginpass()){
            return false;
        }
        if(! validatereloginrepass()){
            return false;
        }
        if(! validateemail()){
            return false;
        }
        if(! validateverifyCode()){
            return false;
        }

        return true;
    });

});

//  对输入的用户名进行合法性校验
function validateloginname(){
    //获得输入框中的内容
    var content = $("#loginname").val();
    // 非空校验
    if(!content){
        //内容为空,将后面的label显示出来
        $("#loginnameError").text("用户名不能为空!");
        //显示标签
        showError($("#loginnameError"));
        return false ;//不再执行后面的语句
    }
    //长度校验
    if(content.length <2 || content.length>20){
        //内容为空,将后面的label显示出来
        $("#loginnameError").text("用户名的长度必须在2-20之间!");
        //显示标签
        showError($("#loginnameError"));
        return false ;//不再执行后面的语句
    }
    //是否已经注册的校验
    //使用ajax到后台服务器去验证
    $.ajax({
        // 等于http:///goods/UserServlet?method=validateLoginname&loginname=content
        url:"/goods/UserServlet",
        data:{method:"validateLoginname",loginname:content},//其中method指的是要访问UserServlet中的那个方法;
        type:"POST",
        dataType:"json",
        async:false, //这里选择同步,如果选择异步操作还没有到服务器查询完结果,就直接返回结果了true了
        cache:false,
        success:function(result){
            if(result){
                //内容为空,将后面的label显示出来
                $("#loginnameError").text("用户名已经注册");
                //显示标签
                showError($("#loginnameError"));
                return false ;//不再执行后面的语句
            }
        }

    });

    return true;
}

//对输入的密码进行校验
function validateloginpass(){
    //获得输入框中的内容
    var content = $("#loginpass").val();
    // 非空校验
    if(!content){
        //内容为空,将后面的label显示出来
        $("#loginpassError").text("密码不能为空!");
        //显示标签
        showError($("#loginpassError"));
        return false ;//不再执行后面的语句
    }
    //长度校验
    if(content.length <3 || content.length>20){
        //内容为空,将后面的label显示出来
        $("#loginpassError").text("密码的长度必须在3-20之间!");
        //显示标签
        showError($("#loginpassError"));
        return false ;//不再执行后面的语句
    }
    return true;
}

//对输入的确认密码进行校验
function validatereloginrepass(){
    //获得输入框中的内容
    var content = $("#reloginrepass").val();
    // 非空校验
    if(!content){
        //内容为空,将后面的label显示出来
        $("#reloginrepassError").text("密码不能为空!");
        //显示标签
        showError($("#reloginrepassError"));
        return false ;//不再执行后面的语句
    }
    //判断两次输入的内容是否一致
    if(content !=  $("#loginpass").val()){
        //内容为空,将后面的label显示出来
        $("#reloginrepassError").text("两次输入的密码不一致!");
        //显示标签
        showError($("#reloginrepassError"));
        return false ;//不再执行后面的语句
    }
    return true;

}

// 对输入的邮箱地址进行校验
function validateemail(){
    //获得输入框中的内容
    var content = $("#email").val();
    // 非空校验
    if(!content){
        //内容为空,将后面的label显示出来
        $("#emailError").text("邮箱不能为空!");
        //显示标签
        showError($("#emailError"));
        return false ;//不再执行后面的语句
    }
    //判断输入的邮箱格式是否正确
    if(!/^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(content)){
        //内容为空,将后面的label显示出来
        $("#emailError").text("邮箱格式不正确!");
        //显示标签
        showError($("#emailError"));
        return false ;//不再执行后面的语句
    }

    //到后台服务器检查是否邮箱已经注册了
    //使用ajax到后台服务器去验证
    $.ajax({
        url:"/goods/UserServlet",
        data:{method:"validateEmail",email:content},//其中method指的是要访问UserServlet中的那个方法;
        type:"POST",
        dataType:"json",
        async:false, //这里选择同步,如果选择异步操作还没有到服务器查询完结果,就直接返回结果了true了
        cache:false,
        success:function(result){
            if(result){
                //内容为空,将后面的label显示出来
                $("#emailError").text("该邮箱已经被注册");
                //显示标签
                showError($("#emailError"));
                return false ;//不再执行后面的语句
            }
        }

    });

    return true;
}

//对输入的地址进行校验
function validateverifyCode(){
    //获得输入框中的内容
    var content = $("#verifyCode").val();
    // 非空校验
    if(!content){
        //内容为空,将后面的label显示出来
        $("#verifyCodeError").text("验证码不能为空!");
        //显示标签
        showError($("#verifyCodeError"));
        return false ;//不再执行后面的语句
    }
    //验证码的长度必须是4
    if(content.length != 4){
        //内容为空,将后面的label显示出来
        $("#verifyCodeError").text("验证码不正确!");
        //显示标签
        showError($("#verifyCodeError"));
        return false ;//不再执行后面的语句
    }

    // 到后台验证验证码是否正确
    //使用ajax到后台服务器去验证
    $.ajax({
        url:"/goods/UserServlet",
        data:{method:"validateVerifyCode",verifyCode:content},//其中method指的是要访问UserServlet中的那个方法;
        type:"POST",
        dataType:"json",
        async:false, //这里选择同步,如果选择异步操作还没有到服务器查询完结果,就直接返回结果了true了
        cache:false,
        success:function(result){
            if(!result){
                //内容为空,将后面的label显示出来
                $("#verifyCodeError").text("验证码不正确!");
                //显示标签
                showError($("#verifyCodeError"));
                return false ;//不再执行后面的语句
            }
        }

    });
    return true;
}

//判断当前元素是否存在内容,存在显示,不存在不显示
function showError( ele ){
    var text = ele.text();//获得该对象的文本值
    if(!text){
        ele.css("display","none");//让该对象消息
    }else{
        ele.css("display","");//显示对象
    }

}

//实现验证码图片的切换功能
function changeVerifyCode() {
    $("#imgVerifyCode").attr("src","/goods/VerifyCodeServlet?a="+new Date().getTime());
}
时间: 2024-10-25 09:50:59

JavaWeb网上图书商城完整项目--day02-6.ajax校验功能之页面实现的相关文章

JavaWeb网上图书商城完整项目--day02-10.提交注册表单功能之页面实现

1.当从服务器返回的注册错误信息的时候,我们在注册界面需要将错误信息显示出来 我们需要修改regist.jsp页面的代码: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix

JavaWeb网上图书商城完整项目--day02-4.regist页面提交表单时对所有输入框进行校验

1.现在我们要将table表中的输入的参数全部提交到后台进行校验,我们提交我们是按照表单的形式提交,所以我们首先需要在table表外面添加一个表单 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core&

JavaWeb网上图书商城完整项目--day03-1.图书模块功能介绍及相关类创建

1 前两天我们学习了user用户模块和图书的分类模块,接下来我们学习图书模块 图书模块的功能主要是下面的功能: 2 接下来我们创建对应的包 我们来看看对应的数据库表t_book CREATE TABLE `t_book` ( `bid` char(32) NOT NULL, `bname` varchar(200) default NULL, `author` varchar(50) default NULL, `price` decimal(8,2) default NULL, `currPr

JavaWeb网上图书商城完整项目--day02-5.ajax校验功能之服务器端三层实现

regist.jsp页面中有异步请求服务器来对表单进行校验: l  校验登录名是否已注册过: l  校验Email是否已注册过: l  校验验证码是否正确. 这说明在UserServlet中需要提供相应的方法来支持前端的请求. 我们需要到数据库查询用户名.邮箱是否注册,到session中检查验证码是否正确. 在进行数据库操作之前,还需要对user表中的字段进行添加处理 因为其他页面中对用户的操作还设计到修改新的密码.确认密码.验证码等几个字段,我们需要在user表中添加下面的几个字段 packa

JavaWeb网上图书商城完整项目--21.用户模块各层相关类的创建

1.现在要为user用户模块创建类 用户模块功能包括:注册.激活.登录.退出.修改密码. User类对照着t_user表来写即可.我们要保证User类的属性名称与t_user表的列名称完全相同. 我们来创建User类 package com.weiyuan.goods.user.domian; public class User { private String uid; //主键 private String loginname;// 登陆名称 private String loginpass

JavaWeb网上图书商城完整项目--day02-12.激活功能各层实现

1.我们来看程序的代码 数据库层: 1.通过激活码查找到对应的用户 2.设置用户的激活状态 2.业务层 1.通过数据库接口通过验证码得到对应的用户 2.判断当用户是否为空,如果没有通过激活码查找到对应的用户,说明用户点击邮箱上传的激活码是无效的,这个时候说明激活失败,抛出一个业务失败异常,说明激活码无效 3.如果用户不为空,并且用户的激活状态是没有激活的,将用户的激活状态设置成true 4.如果用户不为空,但是用户的激活状态是已经激活的,抛出一个业务失败异常,提示用户无需重复激活 3.servl

JavaWeb网上图书商城完整项目--day02-14.登录功能的login页面处理

1.现在注册成功之后,我们来到登录页面,登录页面在于 在登录页面.我们也需要向注册页面一样对登录的用户名.密码 验证码等在jsp页面中进行校验,校验我们单独放置一个login.js文件中进行处理,然后login.jsp加载该js文件 我们来看看login.js的代码和regist.js的代码一样,这里就不用花太多时间进行介绍 $(function() { /* * 1. 让登录按钮在得到和失去焦点时切换图片 */ $("#submit").hover( function() { $(&

JavaWeb网上图书商城完整项目--发送邮件

1.首先注册一个163邮箱 自己的邮箱地址是[email protected] 登陆的密码是[email protected]***19 使用邮箱发邮件,邮件必须开启pop和smtp服务,登陆邮件 开启pop服务,这个时候提示你必须设置授权的密码,我这里设置的是wy87**** 在代码里面必须设置成这个授权密码才能发送邮件,不能设置成登陆密码 客户端需要下面的两个jar文件 我们来看程序的代码: package com.weiyuan.test; import java.io.IOExcepti

JavaWeb网上图书商城完整项目--11.项目所需jquery函数介绍

1.下载jquery的函数包 2.强函数包添加到工程的web-root目录下 3.在jsp文件中加载js文件 <script type="text/javascript" src=" ${pageContext.request.contextPath}/jquery-1.5.1.js"> </script> 案例一:在文档加载完成后显示对话框 <%@ page language="java" import="