if(!reg.test(inputEmail)){
flag = false;
}
if(!flag){
document.getElementById(“email-errMsg”).innerHTML = “邮箱格式不正确,请检查!”
document.getElementById(“email-input”).style = “border:2px solid red;”
}else{
document.getElementById(“email-errMsg”).innerHTML = " "
document.getElementById(“email-input”).style = “border:0px;”
}
emailEnable = flag;
}else{
emailEmpty = true;
}
}
$(document).ready(function () {
$(“#name-input”).focus();
//全局检查并判断是否可以提交
$(“#Submit”).click(function () {
if(nameEmpty){
document.getElementById(“name-input”).style = “border:2px solid red;”
alert(“请输入用户名!”);
return;
}else if(pwd1Empty){
document.getElementById(“pwd-input1”).style = “border:2px solid red;”
alert(“请输入密码!”);
return;
}else if(pwd2Empty){
document.getElementById(“pwd-input2”).style = “border:2px solid red;”
alert(“请再次输入密码!”);
return;
}else if(telEmpty){
document.getElementById(“tel-input”).style = “border:2px solid red;”
alert(“请输入电话号码!”);
return;
}else if(emailEmpty){
document.getElementById(“email-input”).style = “border:2px solid red;”
alert(“请输入邮箱!”);
return;
}else if(!nameEnable){
return;
}else if(!pwdEnable){
return;
}else if(!telEnable){
return;
}else if(!emailEnable){
return;
}
$(“#Form”).submit();
});
});
从注册页面获得参数,并提交数据到数据库。这是JavaWeb的基础,就不详细解释了。
===============================================================
HTML的form表单。和注册页面的类似,从数据库查找数据并验证密码。
-
验证成功,使用Session传递用户User类型变量
-
验证失败,返回登录界面并保留输入的用户名
public class Login extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws IOException {
//获取登陆的用户名和密码
String loName = request.getParameter(“Name”);
String loPwd = request.getParameter(“Pwd”);
String userName;
String res; //返回的信息,若登陆成功则返回空字符串,若登陆失败返回错误信息
try {
//获取用户账号列表
List userList = User_dataList.get();
//遍历
for (User userItem : userList) {
//用于登录失败后用户名不消失
if (userItem.getName().equals(loName)) {
if(userItem.getPwd().equals(loPwd)){
//匹配成功
//创建Session并携带用户信息的参数loginUser
HttpSession session = request.getSession();
session.setAttribute(“loginUser”, userItem);
//跳转至个人信息界面,
request.getRequestDispatcher(“Main.jsp”).forward(request, response);
}else{
//匹配失败,密码错误
userName = userItem.getName();
res = “账号或密码错误,请检查!”;
request.setAttribute(“res”,res);
request.setAttribute(“userName”,userName);
request.getRequestDispatcher(“LoginPage.jsp”).forward(request ,response);
}
}
}
//匹配失败,返回错误信息
} catch (Exception e) {
e.printStackTrace();
}
}
}
==============================================================
导航栏与菜单
将MySQL数据库的数据渲染到LayUI数据表格中
数据表格
LayUI数据表格中的删除和修改操作事件对应的js代码为
table.on(‘tool(test)’, function(obj){
//tool 是工具的事件名,test 是 table 原始容器的属性 lay-filter=“对应的值”
if(obj.event === ‘del’){
//修改操作
//obj为点击的数据对象,包含name,tel等属性
}
else if(obj.event === ‘edit’){
//修改操作
}
(1)删除操作
if(obj.event === ‘del’){
var delName = obj.data.name;
//在执行obj.del()执行前将要删除的用户名存储 并用于URL参数
//因为不确定执行obj.del()后是否会被释放而导致找不到数据
layer.confirm(‘删除成功’, function(index){
obj.del();
layer.close(index);
});
window.location.href= ‘delUser?delName=’ + delName;
//window.location.href = ‘url’ JS跳转页面的方法之一
//delUser为Servlet的url , delName为要删除的用户的用户名
}
(2)修改操作
首先读清楚LayUI官方文档中关于弹窗layer.prompt(option ,yes)的使用
-
title:弹窗的标题
-
value:输入框的值,可以设定初始值
-
form:输入框类型
-
yes:回调函数function(value , index ,elem){} 获取输入框的value值执行操作
由于修改数据需要修改的字段名和修改的值两个数据,layer.prompt()弹出层又无法设定两个输入框。所以我在第一个弹窗的回调函数中再增加一个弹窗,以获取两个数据。
if(obj.event === ‘edit’){
layer.prompt({
//输入字段名的弹窗
formType: 0,
value: ‘’,
title:‘请输入修改字段名’
}, function(value, index ,elem){
var field = value; //中文字段名
var fieldName = value;
var oldValue = ‘’; //原值
//通过输入的中文字段名判断是数据库中的哪个字段,并在obj对象中获取该字段的原值
if(field === ‘用户名’) { field = ‘name’; oldValue = obj.data.name;}
else if(field === ‘电话’){ field = ‘tel’; oldValue = obj.data.tel;}
else if(field === ‘邮箱’){ field = ‘email’; oldValue = obj.data.email;}
else if(field === ‘昵称’){ field = ‘nickName’; oldValue = obj.data.nickName;}
else if(field === ‘住址’){ field = ‘address’; oldValue = obj.data.address;}
//修改字段的值弹窗
layer.prompt({
formType: 0,
value: oldValue, //将默认值设置为原来的值
title: ‘将’+fieldName+‘修改为’
},function (value, index, elem){
window.location.href=
‘updateUser?updateField=’+field //字段名
+‘&updateValue=’+value //修改的值
+‘&updateId=’ +obj.data.id.toString();
// 跳转到Servlet服务器进行修改,数据表中id作为主键,修改数据需要id值
// 这里最将int类型的obj.data.id转换成字符串类型
layer.close(index);
})
console.log(value,index,elem);
layer.close(index);
});
}
将左侧菜单与主题内容对应
1、通过jQuery和JS函数实现:定义一个对象类型的变量menusStatus,表示每个菜单内容是否显示
var menusStatus = {
//初始状态
indexShow : true, //首页
userTableShow : false, //用户表格
page2Show : false,
page3Show : false
}
2、定义一个函数FreshMenusStatus(),根据menusStatus对象各个内容的状态来判断是否需要显示,若有内容增加需要在该函数中多加一组if-else判断。
function FreshMenusStatus(){
//根据menusStatus对象中的值来判断元素是否显示
if(menusStatus.indexShow){ $(“#indexPage”).show();}
else { $(“#indexPage”).hide();}
if(menusStatus.userTableShow){ $(“#userTable-div”).show();}
else{ $(“#userTable-div”).hide();}
if(menusStatus.page2Show){ $(“#page2”).show();}
else { $(“#page2”).hide();}
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新*
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
[外链图片转存中…(img-E3JmRZzh-1711776538364)]
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)