jQuery实现表单验证

使用jQuery实现表单验证,供大家参考,具体内容如下

register.html

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>注册</title>

<!--导入jQuery-->

<script src="js/jquery-3.3.1.js"></script>

<!--进行表单校验-->

<script>

/*

表单校验:

1.用户名:单词字符,长度8到20位

2.密码:单词字符,长度8到20位

3.email:邮件格式

4.姓名:非空

5.手机号:手机号格式

6.出生日期:非空

*/

// 校验用户名

// 单词字符,长度8到20位

function checkUsername() {

// 1.获取用户名值

var username = $("#username").val();

// 2.定义校验正则

var reg_username = /^\w{8,20}$/;

// 3.判断是否满足校验要求,并给出提示信息

var flag = reg_username.test(username);

if (flag) {

// 用户名合法

$("#username").css("border", "");

} else {

// 用户名非法,加一个红色边框

$("#username").css("border", "1px solid red");

}

// 4.返回是否通过校验

return flag;

}

// 校验密码

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 {

//密码非法,加一个红色边框

$("#password").css("border", "1px solid red");

}

// 4.返回校验是否通过

return flag;

}

// 校验邮箱

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.返回校验是否通过

return flag;

}

// 校验姓名

function checkName() {

// 1.获取姓名

var name = $("#name").val();

// 2.判断非空并返回校验是否通过

if (typeof name == "undefined" || name == null || name == "") {

$("#name").css("border", "1px solid red");

return false;

} else {

$("#name").css("border", "");

return true;

}

}

// 校验手机号

function checkTelephone() {

// 1.获取手机号

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.返回校验是否通过

return flag;

}

// 校验出生日期

function checkBirthday() {

// 1.获取出生日期

var birthday = $("#birthday").val();

// 2.判断非空并返回校验是否通过

if (typeof birthday == "undefined" || birthday == null || birthday == "") {

$("#name").css("border", "1px solid red");

return false;

} else {

$("#name").css("border", "");

return true;

}

}

// 进行校验

$(function () {

//当表单提交时,调用所有的校验方法

$("#registerForm").submit(function () {

// 如果这个方法没有返回值,或者返回为true,则表单提交,如果返回为false,则表单不提交

// 1.发送数据到服务器

if (checkUsername() && checkPassword() && checkEmail() && checkName() && checkTelephone() && checkBirthday()) {

// 校验通过,发送ajax请求,提交表单的数据 username=zhangsan&password=123

$.post("registerServlet", $(this).serialize(), function (data) {

if (data.flag) {

// 注册成功,跳转到成功页面

alert("注册成功!");

} else {

//注册失败,给errorMsg添加提示信息

$("#errorMsg").html(data.errorMsg);

}

});

}

//2.不让页面跳转

return false;

});

//当某一个组件失去焦点是,调用对应的校验方法

$("#username").blur(checkUsername);

$("#password").blur(checkPassword);

$("#email").blur(checkEmail);

$("#name").blur(checkName);

$("#telephone").blur(checkTelephone);

$("#birthday").blur(checkBirthday);

})

</script>

</head>

<body>

<div>

<p>用户注册</p>

<!--注册表单-->

<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="请输入账号">

</td>

</tr>

<tr>

<td class="td_left">

<label for="password">密码</label>

</td>

<td class="td_right">

<input type="text" id="password" name="password" placeholder="请输入密码">

</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="请输入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="请输入真实姓名">

</td>

</tr>

<tr>

<td class="td_left">

<label for="telephone">手机号</label>

</td>

<td class="td_right">

<input type="text" id="telephone" name="telephone" placeholder="请输入您的手机号">

</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="注册">

<span id="msg" style="color: red;"></span>

</td>

</tr>

</table>

</form>

</div>

</body>

<script>

</script>

</html>

后台处理代码也可以不看,只是前后端进行交互需要,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:'注册失败'}";// 错误范例

String str="{\"flag\":\"true\",\"errorMsg\":\"注册失败\"}";

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);

}

}

效果:

本节代码地址:Demo

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是 jQuery实现表单验证 的全部内容, 来源链接: utcz.com/p/220778.html

回到顶部