jQuery實(shí)現(xiàn)表單驗(yàn)證
使用jQuery實(shí)現(xiàn)表單驗(yàn)證,供大家參考,具體內(nèi)容如下
register.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注冊(cè)</title>
<!--導(dǎo)入jQuery-->
<script src="js/jquery-3.3.1.js"></script>
<!--進(jìn)行表單校驗(yàn)-->
<script>
/*
表單校驗(yàn):
1.用戶名:?jiǎn)卧~字符,長(zhǎng)度8到20位
2.密碼:?jiǎn)卧~字符,長(zhǎng)度8到20位
3.email:郵件格式
4.姓名:非空
5.手機(jī)號(hào):手機(jī)號(hào)格式
6.出生日期:非空
*/
// 校驗(yàn)用戶名
// 單詞字符,長(zhǎng)度8到20位
function checkUsername() {
// 1.獲取用戶名值
var username = $("#username").val();
// 2.定義校驗(yàn)正則
var reg_username = /^\w{8,20}$/;
// 3.判斷是否滿足校驗(yàn)要求,并給出提示信息
var flag = reg_username.test(username);
if (flag) {
// 用戶名合法
$("#username").css("border", "");
} else {
// 用戶名非法,加一個(gè)紅色邊框
$("#username").css("border", "1px solid red");
}
// 4.返回是否通過校驗(yàn)
return flag;
}
// 校驗(yàn)密碼
function checkPassword() {
//1.獲取密碼值
var password = $("#password").val();
//2.定義正則
var reg_password = /^\w{8,20}$/;
//3.判斷,給出提示信息
var flag = reg_password.test(password);
if (flag) {
//密碼合法
$("#password").css("border", "");
} else {
//密碼非法,加一個(gè)紅色邊框
$("#password").css("border", "1px solid red");
}
// 4.返回校驗(yàn)是否通過
return flag;
}
// 校驗(yàn)郵箱
function checkEmail() {
//1.獲取郵箱
var email = $("#email").val();
//2.定義正則 itcast@163.com
var reg_email = /^\w+@\w+\.\w+$/;
//3.判斷
var flag = reg_email.test(email);
if (flag) {
$("#email").css("border", "");
} else {
$("#email").css("border", "1px solid red");
}
// 4.返回校驗(yàn)是否通過
return flag;
}
// 校驗(yàn)姓名
function checkName() {
// 1.獲取姓名
var name = $("#name").val();
// 2.判斷非空并返回校驗(yàn)是否通過
if (typeof name == "undefined" || name == null || name == "") {
$("#name").css("border", "1px solid red");
return false;
} else {
$("#name").css("border", "");
return true;
}
}
// 校驗(yàn)手機(jī)號(hào)
function checkTelephone() {
// 1.獲取手機(jī)號(hào)
var telephone = $("#telephone").val();
// 2.定義正則
var reg_tel = /^1(3|4|5|6|7|8|9)\d{9}$/;
// 3.判斷
var flag = reg_tel.test(telephone);
if (flag) {
$("#telephone").css("border", "");
} else {
$("#telephone").css("border", "1px solid red");
}
// 4.返回校驗(yàn)是否通過
return flag;
}
// 校驗(yàn)出生日期
function checkBirthday() {
// 1.獲取出生日期
var birthday = $("#birthday").val();
// 2.判斷非空并返回校驗(yàn)是否通過
if (typeof birthday == "undefined" || birthday == null || birthday == "") {
$("#name").css("border", "1px solid red");
return false;
} else {
$("#name").css("border", "");
return true;
}
}
// 進(jìn)行校驗(yàn)
$(function () {
//當(dāng)表單提交時(shí),調(diào)用所有的校驗(yàn)方法
$("#registerForm").submit(function () {
// 如果這個(gè)方法沒有返回值,或者返回為true,則表單提交,如果返回為false,則表單不提交
// 1.發(fā)送數(shù)據(jù)到服務(wù)器
if (checkUsername() && checkPassword() && checkEmail() && checkName() && checkTelephone() && checkBirthday()) {
// 校驗(yàn)通過,發(fā)送ajax請(qǐng)求,提交表單的數(shù)據(jù) username=zhangsan&password=123
$.post("registerServlet", $(this).serialize(), function (data) {
if (data.flag) {
// 注冊(cè)成功,跳轉(zhuǎn)到成功頁面
alert("注冊(cè)成功!");
} else {
//注冊(cè)失敗,給errorMsg添加提示信息
$("#errorMsg").html(data.errorMsg);
}
});
}
//2.不讓頁面跳轉(zhuǎn)
return false;
});
//當(dāng)某一個(gè)組件失去焦點(diǎn)是,調(diào)用對(duì)應(yīng)的校驗(yàn)方法
$("#username").blur(checkUsername);
$("#password").blur(checkPassword);
$("#email").blur(checkEmail);
$("#name").blur(checkName);
$("#telephone").blur(checkTelephone);
$("#birthday").blur(checkBirthday);
})
</script>
</head>
<body>
<div>
<p>用戶注冊(cè)</p>
<!--注冊(cè)表單-->
<div id="errorMsg" style="color:red;text-align: center"></div>
<form id="registerForm" action="registerServlet" method="post">
<table style="margin-top: 25px;">
<tr>
<td class="td_left">
<label for="username">用戶名</label>
</td>
<td class="td_right">
<input type="text" id="username" name="username" placeholder="請(qǐng)輸入賬號(hào)">
</td>
</tr>
<tr>
<td class="td_left">
<label for="password">密碼</label>
</td>
<td class="td_right">
<input type="text" id="password" name="password" placeholder="請(qǐng)輸入密碼">
</td>
</tr>
<tr>
<td class="td_left">
<label for="email">Email</label>
</td>
<td class="td_right">
<input type="text" id="email" name="email" placeholder="請(qǐng)輸入Email">
</td>
</tr>
<tr>
<td class="td_left">
<label for="name">姓名</label>
</td>
<td class="td_right">
<input type="text" id="name" name="name" placeholder="請(qǐng)輸入真實(shí)姓名">
</td>
</tr>
<tr>
<td class="td_left">
<label for="telephone">手機(jī)號(hào)</label>
</td>
<td class="td_right">
<input type="text" id="telephone" name="telephone" placeholder="請(qǐng)輸入您的手機(jī)號(hào)">
</td>
</tr>
<tr>
<td class="td_left">
<label for="sex">性別</label>
</td>
<td class="td_right gender">
<input type="radio" id="sex" name="sex" value="男" checked> 男
<input type="radio" name="sex" value="女"> 女
</td>
</tr>
<tr>
<td class="td_left">
<label for="birthday">出生日期</label>
</td>
<td class="td_right">
<input type="date" id="birthday" name="birthday" placeholder="年/月/日">
</td>
</tr>
<tr>
<td class="td_left">
</td>
<td class="td_right check">
<input type="submit" class="submit" value="注冊(cè)">
<span id="msg" style="color: red;"></span>
</td>
</tr>
</table>
</form>
</div>
</body>
<script>
</script>
</html>
后臺(tái)處理代碼也可以不看,只是前后端進(jìn)行交互需要,RegisterServlet.java
package com.demo.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@WebServlet("/registerServlet")
public class RegisterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Map<String, String[]> parameterMap = req.getParameterMap();
Set<String> keySet = parameterMap.keySet();
Iterator<String> iterator = keySet.iterator();
while (iterator.hasNext()) {
String key = iterator.next();
System.out.println(key + ":" + parameterMap.get(key)[0]);
}
// String str="{flag:true,errorMsg:'注冊(cè)失敗'}";// 錯(cuò)誤范例
String str="{\"flag\":\"true\",\"errorMsg\":\"注冊(cè)失敗\"}";
resp.setContentType("application/json;charset=utf-8");
resp.getWriter().print(str);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req, resp);
}
}
效果:

本節(jié)代碼地址:Demo
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jquery實(shí)現(xiàn)的回旋滾動(dòng)效果完整實(shí)例【附demo源碼下載】
這篇文章主要介紹了jquery實(shí)現(xiàn)的回旋滾動(dòng)效果,可實(shí)現(xiàn)點(diǎn)擊后側(cè)圖片呈現(xiàn)立體翻轉(zhuǎn)切換的功能,涉及jQuery插件roundabout.js的使用,并附帶了完整實(shí)例demo源碼供讀者下載參考,需要的朋友可以參考下2016-09-09
jQuery.Callbacks()回調(diào)函數(shù)隊(duì)列用法詳解
這篇文章主要介紹了jQuery.Callbacks()回調(diào)函數(shù)隊(duì)列用法,結(jié)合實(shí)例形式詳細(xì)分析了jQuery.Callbacks()回調(diào)函數(shù)隊(duì)列的功能、控制標(biāo)志含義與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-06-06
關(guān)于jquery中attr()和prop()方法的區(qū)別
今兒是腳本之家小編給大家總結(jié)的jquery中attr()和prop()方法的區(qū)別,感興趣的朋友參考下2018-05-05
jquery清空input標(biāo)簽的值及清除標(biāo)簽里面的內(nèi)容
這篇文章主要介紹了jquery清空input標(biāo)簽的值,清除標(biāo)簽里面的內(nèi)容,清除input標(biāo)簽的值,可以通過直接將input標(biāo)簽的值設(shè)置為空來實(shí)現(xiàn),本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-10-10
jQuery簡(jiǎn)單實(shí)現(xiàn)禁用右鍵菜單
這篇文章主要介紹了jQuery簡(jiǎn)單實(shí)現(xiàn)禁用右鍵菜單的方法,非常的簡(jiǎn)單實(shí)用,這里分享給大家,有需要的小伙伴直接拿走使用。2015-03-03
jquery 跳到頂部和底部動(dòng)畫2句代碼簡(jiǎn)單實(shí)現(xiàn)
使用2句代碼簡(jiǎn)單實(shí)現(xiàn)jquery動(dòng)畫的跳到頂部和底部;當(dāng)點(diǎn)擊頂部按鈕的時(shí)候,執(zhí)行方法,scrollTop屬性獲取選中標(biāo)簽距滾動(dòng)條的距離,具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下2013-07-07
jquery處理json數(shù)據(jù)實(shí)例分析
json數(shù)據(jù)是一種經(jīng)型的實(shí)時(shí)數(shù)據(jù)交互的數(shù)據(jù)存儲(chǔ)方法,使用到最多的應(yīng)該是ajax與json配合使用了,下面我來給大家介紹jquery處理json數(shù)據(jù)方法。2014-06-06

