Java书城项目第一阶段:表单验证

1)文笔有限,如果发现博客有书写有误的地方恳请读者直言不讳,我一定会第一时间改正。
2)代码的具体实现可以参考代码中的注释,如果由于注释不清楚而不明白相应原理,可以与作者私聊。码字不易,有兴趣的小伙伴点个赞呗,大家相互学习。
3)本篇博客为Java书城项目第一阶段:表单验证,如需了解其它部分,欢迎点击链接。

  1. Java书城项目第一阶段:表单验证
  2. Java书城项目第二阶段:用户模块
  3. Java书城项目第三阶段:优化
  4. Java书城项目第四阶段:图书模块
  5. Java 书城项目最终阶段:总结与视频演示
  6. Java 书城项目源代码

4)该项目技术栈为:Java、MySQL、HTML、CSS、JavaScript、JQuery、XML、Tomcat、Servlet等,兄弟们也可查看我的其它文章,下面为链接:

  1. 静态网页开发技术之HTML
  2. 动态网页开发技术之JSP
  3. EL表达式与JSTL标签库
  4. Servlet必知必会
  5. 在慢慢增加了,等等哈

1 需求

1.1 总体需求

运用JQuery技术来实现动态注册 ,同时实现表单的验证以及上传,即验证注册信息是否满足要求。

1.2 具体需求

  • 验证用户名:必须由字母,数字下划线组成,并且长度为5 到12 位
  • 验证密码:必须由字母,数字下划线组成,并且长度为5 到12 位
  • 验证确认密码:和密码相同
  • 邮箱验证:xxxxx@xxx.com
  • 验证码验证:因为还没讲到服务器的验证码生成,所以,现阶段将验证码固定为“1234”

 

2 工程目录与约定

图1.1

图1.1 regist.html文件位置

 

我们需要利用JQuery技术来实现表单的验证,那么该HTML文件中会有一些链接,这里先做一个约定:即在没有使用框架之前,我们使用base+相对路径,在使用框架后,使用的是绝对路径。其中,运用JQuery技术来实现动态注册,其中#username的目的就是#id选择器;利用正则表达式来实现表单数据的验证(验证其是否满足格式);

 

3 代码实现

<!--这是书城项目的第一部分,表单验证-->
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>尚硅谷会员注册页面</title>

		<!--在html文件中加入base标签,而且base标签只对当前页面有效。base目录对应的是Web这个目录,写base路径是
		为了永远固定相对路径跳转的结果。如果不知道下面哪个需要改,那就把它运行起来,按F12,刷新浏览器,看哪个爆红就改哪个。-->
		<base href="http://localhost:8080/book_market/">

		<link type="text/css" rel="stylesheet" href="static/css/style.css" >
		<script type="text/javascript" src="static/script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			// 页面加载完成之后
			//运用Jquery技术来实现动态注册,其中#username的目的就是#id选择器 KO by sharm. 2020.11.6
			$(function () {
				// 给注册绑定单击事件
				$("#sub_btn").click(function () {
					// 验证用户名:必须由字母,数字下划线组成,并且长度为5到12位
					//1 获取用户名输入框里的内容
					var usernameText = $("#username").val();
					//2 创建正则表达式对象
					var usernamePatt = /^\w{5,12}$/;
					//3 使用test方法验证
					if (!usernamePatt.test(usernameText)) {
						//4 提示用户结果
						$("span.errorMsg").text("用户名不合法!");

						return false;
					}

					// 验证密码:必须由字母,数字下划线组成,并且长度为5到12位
					//1 获取用户名输入框里的内容
					var passwordText = $("#password").val();
					//2 创建正则表达式对象
					var passwordPatt = /^\w{5,12}$/;
					//3 使用test方法验证
					if (!passwordPatt.test(passwordText)) {
						//4 提示用户结果
						$("span.errorMsg").text("密码不合法!");

						return false;
					}

					// 验证确认密码:和密码相同
					//1 获取确认密码内容
					var repwdText = $("#repwd").val();
					//2 和密码相比较
					if (repwdText != passwordText) {
						//3 提示用户
						$("span.errorMsg").text("确认密码和密码不一致!");

						return false;
					}

					// 邮箱验证:xxxxx@xxx.com
					//1 获取邮箱里的内容
					var emailText = $("#email").val();
					//2 创建正则表达式对象
					var emailPatt = /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/;
					//3 使用test方法验证是否合法
					if (!emailPatt.test(emailText)) {
						//4 提示用户
						$("span.errorMsg").text("邮箱格式不合法!");

						return false;
					}

					// 验证码:现在只需要验证用户已输入。因为还没讲到服务器。验证码生成。
					var codeText = $("#code").val();

					//去掉验证码前后空格
					// alert("去空格前:["+codeText+"]")
					codeText = $.trim(codeText);
					// alert("去空格后:["+codeText+"]")

					if (codeText == null || codeText == "") {
						//4 提示用户
						$("span.errorMsg").text("验证码不能为空!");

						return false;
					}

					// 去掉错误信息
					$("span.errorMsg").text("");

				});

			});

		</script>
	<style type="text/css">
		.login_form{
			height:420px;
			margin-top: 25px;
		}

	</style>
	</head>
	<body>
		<div id="login_header">
			<img class="logo_img" alt="" src="static/img/logo.gif" >
		</div>

			<div class="login_banner">

				<div id="l_content">
					<span class="login_word">欢迎注册</span>
				</div>

				<div id="content">
					<div class="login_form">
						<div class="login_box">
							<div class="tit">
								<h1>注册尚硅谷会员</h1>
								<span class="errorMsg"></span>
							</div>
							<div class="form">
                                <!--基于base目录的新目录,而且是加在form中的-->
								<!--这边自己的路径写成/ergistServlet就报错了-->
								<form action="registServlet" method="post">
									<label>用户名称:</label>
									<input class="itxt" type="text" placeholder="请输入用户名"
										   autocomplete="off" tabindex="1" name="username" id="username" />
									<br />
									<br />
									<label>用户密码:</label>
									<input class="itxt" type="password" placeholder="请输入密码"
										   autocomplete="off" tabindex="1" name="password" id="password" />
									<br />
									<br />
									<label>确认密码:</label>
									<input class="itxt" type="password" placeholder="确认密码"
										   autocomplete="off" tabindex="1" name="repwd" id="repwd" />
									<br />
									<br />
									<label>电子邮件:</label>
									<input class="itxt" type="text" placeholder="请输入邮箱地址"
										   autocomplete="off" tabindex="1" name="email" id="email" />
									<br />
									<br />
									<label>验证码:</label>
									<input class="itxt" type="text" style="width: 150px;" name="code" id="code"/>
									<img alt="" src="static/img/code.bmp" style="float: right; margin-right: 40px">
									<br />
									<br />
									<input type="submit" value="注册" id="sub_btn" />
								</form>
							</div>
						</div>
					</div>
				</div>
			</div>
		<div id="bottom">
			<span>
				尚硅谷书城.Copyright &copy;2015
			</span>
		</div>
	</body>
</html>

 

4 第一阶段技术栈参考资料

  • JQuery-链接
  • 正则表达式
  • HTML
  • JavaScript之事件的注册

版权声明:本文为weixin_44262126原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。