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_-])+@([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());
}

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

  1. JavaWeb网上图书商城完整项目--day02-28.查询所有分类功能之left页面使用Q6MenuBar组件显示手风琴式下拉菜单

    首先页面去加载的时候,会去加载main.js文件,我们在加载left.jsp.top.jsp body.jsp,现在我们修改main.jsp的代码,让它去请求的时候去访问的是不在直接去访问left.j ...

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

    1.当从服务器返回的注册错误信息的时候,我们在注册界面需要将错误信息显示出来 我们需要修改regist.jsp页面的代码:其中error是一个haspmap,c标签对map的属性可以直接使用 ${er ...

  3. JavaWeb网上图书商城完整项目--day02-25.查询所有分类功能之流程分析

    分类模块的业务流程入下面所示:

  4. JavaWeb网上图书商城完整项目--day02-27.查询所有分类功能之Servlet和Service层

    我们在上面实现了数据库层的代码,现在我们来实现业务层和Servlet层的代码:业务层的代码如下: package com.weiyuan.goods.category.service; import ...

  5. JavaWeb网上图书商城完整项目--day02-26.查询所有分类功能之DAO层实现

    我们按照表示的设计 以及: package com.weiyuan.goods.category.domain; import java.util.List; public class Categor ...

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

    1.现在我们要将table表中的输入的参数全部提交到后台进行校验,我们提交我们是按照表单的形式提交,所以我们首先需要在table表外面添加一个表单 <%@ page language=" ...

  7. JavaWeb网上图书商城完整项目--24.注册页面的css样式实现

    现在框架已经做好了,即下来我们要对页面进行装饰了,第一步给每一个元素添加id 1.最外面的div添加id为divMain 2.第二个div添加id为divTitle,里面的span对应的id为span ...

  8. JavaWeb网上图书商城完整项目--day02-21.退出功能的实现

    1.当用户点击退出的时候,跳转到登陆页面 当用户点击退出的时候,需要将session中保存的登陆的用户销毁掉 当用户点击退出的时候,调用UserServlet的quit方法 退出按钮在top.jsp中 ...

  9. JavaWeb网上图书商城完整项目--过滤器解决中文乱码

    我们知道,如果是POST请求,我们需要调用request.setCharacterEncoding(“utf-8”)方法来设计编码:如果是GET请求,我们需要自己手动来处理编码问题.如果我们使用了En ...

  10. JavaWeb网上图书商城完整项目--13.项目所需环境的搭建

    1.首先安装mysql 创建项目所需的数据库,直接运行项目提供的goods.sql文库 2.myeclipse创建一个web project ,项目的名称是goods 把视频中提供的项目原型下的提供的 ...

随机推荐

  1. 服务器开发 Ubuntu

    一.Ubuntu安装: 为什么用Ubuntu,作为服务器初学者开发,如果真的要买苹果系统电脑性价比不高,所以在window系统中安装Linux虚拟机是不二之选.为什么用Ubuntu不多说了,开始安装吧 ...

  2. GTA5侠盗猎车5中文版破解版绿色版汉化版迅雷下载地址种子实测可用

    GTA5(侠盗猎车5)中文版下载地址(实测可用) 迅雷下载地址:https://www.90pan.com/b1548988 一定要关闭安全软件并且加入白名单 实测通过,关闭杀毒软件可以完美运行,最好 ...

  3. Java实现 LeetCode 149 直线上最多的点数

    149. 直线上最多的点数 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上. 示例 1: 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o | ...

  4. Java实现LeetCode17. 电话号码的字母组合

    给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输出:[&quo ...

  5. java实现不连续处断开

    不连续处断开 下列代码运行结果为: 12345 23456 89 23456789 即把一个串从数字不连续的位置断开.试完善之. String s = "123452345689234567 ...

  6. http1.0 、http1.1和http2.0的区别

    一.HTTP1.0 HTTP 1.1主要区别       1.1 长链接             HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支 ...

  7. 最新 iOS 框架整体梳理(二)

    在前面一篇中整理出来了一些了,下面的内容是接着上面一篇的接着整理.上篇具体的内容可以点击这里查看:   最新 iOS 框架整体梳理(一) Part - 2          34.CoreTeleph ...

  8. 4k壁纸

    4k

  9. MYSQL SQL 语句修改字段默认值

    alter table tablename alter column drop default; (若本身存在默认值,则先删除) alter table tablename alter column ...

  10. 学习nginx从入门到实践(五) 场景实践之静态资源web服务

    一.静态资源web服务 1.1 静态资源 静态资源定义:非服务器动态生成的文件. 1.2 静态资源服务场景-CDN 1.3 文件读取配置 1.3.1 sendfile 配置语法: syntax: se ...