java網(wǎng)上圖書商城(1)User模塊
更新時間:2016年12月05日 09:05:54 作者:ganchuanpu
這篇文章主要介紹了java網(wǎng)上圖書商城,User模塊,實(shí)現(xiàn)用戶注冊功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了java網(wǎng)上圖書商城user模塊代碼,供大家參考,具體內(nèi)容如下
效果圖:

regist.js
$(function() {
/*
* 1. 得到所有的錯誤信息,循環(huán)遍歷之。調(diào)用一個方法來確定是否顯示錯誤信息!
*/
$(".errorClass").each(function() {
showError($(this));//遍歷每個元素,使用每個元素來調(diào)用showError方法
});
/*
* 2. 切換注冊按鈕的圖片
*/
$("#submitBtn").hover(
function() {
$("#submitBtn").attr("src", "/goods/images/regist2.jpg");
},
function() {
$("#submitBtn").attr("src", "/goods/images/regist1.jpg");
}
);
/*
* 3. 輸入框得到焦點(diǎn)隱藏錯誤信息
*/
$(".inputClass").focus(function() {
var labelId = $(this).attr("id") + "Error";//通過輸入框找到對應(yīng)的label的id
$("#" + labelId).text("");//把label的內(nèi)容清空!
showError($("#" + labelId));//隱藏沒有信息的label
});
/*
* 4. 輸入框失去焦點(diǎn)進(jìn)行校驗(yàn)
*/
$(".inputClass").blur(function() {
var id = $(this).attr("id");//獲取當(dāng)前輸入框的id
var funName = "validate" + id.substring(0,1).toUpperCase() + id.substring(1) + "()";//得到對應(yīng)的校驗(yàn)函數(shù)名
eval(funName);//執(zhí)行函數(shù)調(diào)用
});
/*
* 5. 表單提交時進(jìn)行校驗(yàn)
*/
$("#registForm").submit(function() {
var bool = true;//表示校驗(yàn)通過
if(!validateLoginname()) {
bool = false;
}
if(!validateLoginpass()) {
bool = false;
}
if(!validateReloginpass()) {
bool = false;
}
if(!validateEmail()) {
bool = false;
}
if(!validateVerifyCode()) {
bool = false;
}
return bool;
});
});
/*
* 登錄名校驗(yàn)方法
*/
function validateLoginname() {
var id = "loginname";
var value = $("#" + id).val();//獲取輸入框內(nèi)容
/*
* 1. 非空校驗(yàn)
*/
if(!value) {
/*
* 獲取對應(yīng)的label
* 添加錯誤信息
* 顯示label
*/
$("#" + id + "Error").text("用戶名不能為空!");
showError($("#" + id + "Error"));
return false;
}
/*
* 2. 長度校驗(yàn)
*/
if(value.length < 3 || value.length > 20) {
/*
* 獲取對應(yīng)的label
* 添加錯誤信息
* 顯示label
*/
$("#" + id + "Error").text("用戶名長度必須在3 ~ 20之間!");
showError($("#" + id + "Error"));
false;
}
/*
* 3. 是否注冊校驗(yàn)
*/
$.ajax({
url:"/goods/UserServlet",//要請求的servlet
data:{method:"ajaxValidateLoginname", loginname:value},//給服務(wù)器的參數(shù)
type:"POST",
dataType:"json",
async:false,//是否異步請求,如果是異步,那么不會等服務(wù)器返回,我們這個函數(shù)就向下運(yùn)行了。
cache:false,
success:function(result) {
if(!result) {//如果校驗(yàn)失敗
$("#" + id + "Error").text("用戶名已被注冊!");
showError($("#" + id + "Error"));
return false;
}
}
});
return true;
}
/*
* 登錄密碼校驗(yàn)方法
*/
function validateLoginpass() {
var id = "loginpass";
var value = $("#" + id).val();//獲取輸入框內(nèi)容
/*
* 1. 非空校驗(yàn)
*/
if(!value) {
/*
* 獲取對應(yīng)的label
* 添加錯誤信息
* 顯示label
*/
$("#" + id + "Error").text("密碼不能為空!");
showError($("#" + id + "Error"));
return false;
}
/*
* 2. 長度校驗(yàn)
*/
if(value.length < 3 || value.length > 20) {
/*
* 獲取對應(yīng)的label
* 添加錯誤信息
* 顯示label
*/
$("#" + id + "Error").text("密碼長度必須在3 ~ 20之間!");
showError($("#" + id + "Error"));
false;
}
return true;
}
/*
* 確認(rèn)密碼校驗(yàn)方法
*/
function validateReloginpass() {
var id = "reloginpass";
var value = $("#" + id).val();//獲取輸入框內(nèi)容
/*
* 1. 非空校驗(yàn)
*/
if(!value) {
/*
* 獲取對應(yīng)的label
* 添加錯誤信息
* 顯示label
*/
$("#" + id + "Error").text("確認(rèn)密碼不能為空!");
showError($("#" + id + "Error"));
return false;
}
/*
* 2. 兩次輸入是否一致校驗(yàn)
*/
if(value != $("#loginpass").val()) {
/*
* 獲取對應(yīng)的label
* 添加錯誤信息
* 顯示label
*/
$("#" + id + "Error").text("兩次輸入不一致!");
showError($("#" + id + "Error"));
false;
}
return true;
}
/*
* Email校驗(yàn)方法
*/
function validateEmail() {
var id = "email";
var value = $("#" + id).val();//獲取輸入框內(nèi)容
/*
* 1. 非空校驗(yàn)
*/
if(!value) {
/*
* 獲取對應(yīng)的label
* 添加錯誤信息
* 顯示label
*/
$("#" + id + "Error").text("Email不能為空!");
showError($("#" + id + "Error"));
return false;
}
/*
* 2. Email格式校驗(yàn)
*/
if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(value)) {
/*
* 獲取對應(yīng)的label
* 添加錯誤信息
* 顯示label
*/
$("#" + id + "Error").text("錯誤的Email格式!");
showError($("#" + id + "Error"));
false;
}
/*
* 3. 是否注冊校驗(yàn)
*/
$.ajax({
url:"/goods/UserServlet",//要請求的servlet
data:{method:"ajaxValidateEmail", email:value},//給服務(wù)器的參數(shù)
type:"POST",
dataType:"json",
async:false,//是否異步請求,如果是異步,那么不會等服務(wù)器返回,我們這個函數(shù)就向下運(yùn)行了。
cache:false,
success:function(result) {
if(!result) {//如果校驗(yàn)失敗
$("#" + id + "Error").text("Email已被注冊!");
showError($("#" + id + "Error"));
return false;
}
}
});
return true;
}
/*
* 驗(yàn)證碼校驗(yàn)方法
*/
function validateVerifyCode() {
var id = "verifyCode";
var value = $("#" + id).val();//獲取輸入框內(nèi)容
/*
* 1. 非空校驗(yàn)
*/
if(!value) {
/*
* 獲取對應(yīng)的label
* 添加錯誤信息
* 顯示label
*/
$("#" + id + "Error").text("驗(yàn)證碼不能為空!");
showError($("#" + id + "Error"));
return false;
}
/*
* 2. 長度校驗(yàn)
*/
if(value.length != 4) {
/*
* 獲取對應(yīng)的label
* 添加錯誤信息
* 顯示label
*/
$("#" + id + "Error").text("錯誤的驗(yàn)證碼!");
showError($("#" + id + "Error"));
false;
}
/*
* 3. 是否正確
*/
$.ajax({
url:"/goods/UserServlet",//要請求的servlet
data:{method:"ajaxValidateVerifyCode", verifyCode:value},//給服務(wù)器的參數(shù)
type:"POST",
dataType:"json",
async:false,//是否異步請求,如果是異步,那么不會等服務(wù)器返回,我們這個函數(shù)就向下運(yùn)行了。
cache:false,
success:function(result) {
if(!result) {//如果校驗(yàn)失敗
$("#" + id + "Error").text("驗(yàn)證碼錯誤!");
showError($("#" + id + "Error"));
return false;
}
}
});
return true;
}
/*
* 判斷當(dāng)前元素是否存在內(nèi)容,如果存在顯示,不頁面不顯示!
*/
function showError(ele) {
var text = ele.text();//獲取元素的內(nèi)容
if(!text) {//如果沒有內(nèi)容
ele.css("display", "none");//隱藏元素
} else {//如果有內(nèi)容
ele.css("display", "");//顯示元素
}
}
/*
* 換一張驗(yàn)證碼
*/
function _hyz() {
/*
* 1. 獲取<img>元素
* 2. 重新設(shè)置它的src
* 3. 使用毫秒來添加參數(shù)
*/
$("#imgVerifyCode").attr("src", "/goods/VerifyCodeServlet?a=" + new Date().getTime());
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java超詳細(xì)講解多線程中的Process與Thread
進(jìn)程process:在一定的環(huán)境下,把靜態(tài)的程序代碼運(yùn)行起來,通過使用不同的資源,來完成一定的任務(wù);線程thread:是程序中一個單一的順序控制流程。在單個進(jìn)程中同時運(yùn)行多個線程完成不同的工作,稱為多線程2022-05-05
java實(shí)現(xiàn)token無感刷新+處理并發(fā)的后端方案
在Web應(yīng)用中,Token用于身份驗(yàn)證和會話管理,但當(dāng)Token過期時,可能會導(dǎo)致用戶在提交表單或進(jìn)行操作時突然被重定向到登錄頁面,本文就來介紹一下java實(shí)現(xiàn)token無感刷新+處理并發(fā)的后端方案,感興趣的可以了解一下2024-11-11
Java中的讀寫鎖ReentrantReadWriteLock源碼分析
這篇文章主要介紹了Java中的讀寫鎖ReentrantReadWriteLock源碼分析,ReentrantReadWriteLock 分為讀鎖和寫鎖兩個實(shí)例,讀鎖是共享鎖,可被多個線程同時使用,寫鎖是獨(dú)占鎖,持有寫鎖的線程可以繼續(xù)獲取讀鎖,反之不行,需要的朋友可以參考下2023-12-12
java與JSON數(shù)據(jù)的轉(zhuǎn)換實(shí)例詳解
這篇文章主要介紹了java與JSON數(shù)據(jù)的轉(zhuǎn)換實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03
基于OpenCV與JVM實(shí)現(xiàn)矩陣處理圖像
本文主要介紹了Java圖像處理實(shí)戰(zhàn)之基于OpenCV與JVM實(shí)現(xiàn)矩陣處理圖像。文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)圖像處理有一定的幫助,感興趣的可以試一試2022-01-01
Spring?Boot?中正確地在異步線程中使用?HttpServletRequest的方法
文章討論了在Spring?Boot中如何在異步線程中正確使用HttpServletRequest的問題,介紹了Tomcat的請求對象復(fù)用機(jī)制及其對異步線程的影響,并解釋了AsyncContext的作用與局限性,感興趣的朋友一起看看吧2025-03-03

