1)文笔有限,如果发现博客有书写有误的地方恳请读者直言不讳,我一定会第一时间改正。
2)代码的具体实现可以参考代码中的注释,如果由于注释不清楚而不明白相应原理,可以与作者私聊。码字不易,有兴趣的小伙伴点个赞呗,大家相互学习。
3)本篇博客为Java书城项目第一阶段:表单验证,如需了解其它部分,欢迎点击链接。4)该项目技术栈为:Java、MySQL、HTML、CSS、JavaScript、JQuery、XML、Tomcat、Servlet等,兄弟们也可查看我的其它文章,下面为链接:
1 需求
1.1 总体需求
运用JQuery技术来实现动态注册 ,同时实现表单的验证以及上传,即验证注册信息是否满足要求。
1.2 具体需求
- 验证用户名:必须由字母,数字下划线组成,并且长度为5 到12 位
- 验证密码:必须由字母,数字下划线组成,并且长度为5 到12 位
- 验证确认密码:和密码相同
- 邮箱验证:xxxxx@xxx.com
- 验证码验证:因为还没讲到服务器的验证码生成,所以,现阶段将验证码固定为“1234”
2 工程目录与约定
图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 ©2015
</span>
</div>
</body>
</html>
4 第一阶段技术栈参考资料
- JQuery-链接
- 正则表达式
- HTML
- JavaScript之事件的注册
版权声明:本文为weixin_44262126原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。