首页 > 其他分享 >用户登录案例和form-serialize

用户登录案例和form-serialize

时间:2024-02-04 16:58:15浏览次数:29  
标签:username 用户名 console form 登录 serialize password log

目录

用户登录案例

需求:

1.点击登录时,判断用户名和密码的长度

用户名要求:最少8位,中英文和数字组成

密码:最少6位

2.提交数据和服务器通信

3.提示登录情况

主要功能一

判断用户名和密码长度

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>登录案例</title>
		<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" />
	
	</head>
	<body>
		<div class="container">
			<h3>欢迎,登录</h3>
			<!-- 登录结果-提示框 -->
			<div class="alert alert-success" role="alert">
				提示消息
			</div>
			<!-- 表单 -->
			<div class="form_wrap">
				<form action="">
					<div class="mb-3">
						<label for="username" class="form-label">账号名</label>
						<input type="text" class="form-control username" />
					</div>
					<div class="mb-3">
						<label for="password" class="form-label">密码</label>
						<input type="password" class="form-control password"/>
					</div>
					<button type="button" class="btn btn-primary btn-login" style="margin-top: 5px;margin-left: 9px;">登录</button>
				</form>
			</div>
		</div>
		<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
		<script>
			// 目标1:点击登录时,用户名和密码长度判断,并提交数据和服务器通信
			// 1.1 登录-点击事件
			document.querySelector('.btn-login').addEventListener('click',()=>{
				//1.2 获取用户名和密码
				const username= document.querySelector('.username').value
				const password = document.querySelector('.password').value
				// console.log(username,password)
				// 1.3 判断长度
				if (username.length < 8){
					console.log('用户名必须大于等于8位')
					return//阻止代码继续执行
				}else if(password.length < 6){
					console.log('密码必须大于等于6位')
					return//阻止代码继续执行
				}
				console.log('提交数据')
			})
 		</script>
	</body>
</html>

在这里使用了return来阻止代码继续执行。当用户名或密码长度不符合要求时,会执行相应的 console.log() 语句输出提示信息,并使用 return 阻止代码继续执行。

同时这里有一个div标签内有一个属性role,该属性指定这个div标签再用户界面中所扮演的角色。在这种情况下,role='alert'表示这个标签是一个警告通知。

基于axios提交用户名和密码并判断登录结果

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>登录案例</title>
		<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" />
	
	</head>
	<body>
		<div class="container">
			<h3>欢迎,登录</h3>
			<!-- 登录结果-提示框 -->
			<div class="alert alert-success" role="alert">
				提示消息
			</div>
			<!-- 表单 -->
			<div class="form_wrap">
				<form action="">
					<div class="mb-3">
						<label for="username" class="form-label">账号名</label>
						<input type="text" class="form-control username" />
					</div>
					<div class="mb-3">
						<label for="password" class="form-label">密码</label>
						<input type="password" class="form-control password"/>
					</div>
					<button type="button" class="btn btn-primary btn-login" style="margin-top: 5px;margin-left: 9px;">登录</button>
				</form>
			</div>
		</div>
		<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
		<script>
			// 目标1:点击登录时,用户名和密码长度判断,并提交数据和服务器通信
			// 1.1 登录-点击事件
			document.querySelector('.btn-login').addEventListener('click',()=>{
				//1.2 获取用户名和密码
				const username= document.querySelector('.username').value
				const password = document.querySelector('.password').value
				// console.log(username,password)
				// 1.3 判断长度
				if (username.length < 8){
					console.log('用户名必须大于等于8位')
					return//阻止代码继续执行
				}else if(password.length < 6){
					console.log('密码必须大于等于6位')
					return//阻止代码继续执行
				}
				// 1.4 基于axios提交用户名和密码
				axios({
					url:'https://hmajax.itheima.net/api/login',
					method:'POST',
					data:{
						username:username,
						password:password,
					}
				}).then(result => {
					console.log(result)//这里打印输出服务器返回的数据
					console.log(result.data.message)//打印登录的结果
				}).catch(error=>{
					console.log(error)//打印登录失败的返回数据
					console.log(error.response.data.message)//打印登录的结果
				})
			})
 		</script>
	</body>
</html>

步骤总结

首先绑定一个按钮点击事件

再获取用户名和密码

再判断用户名和密码是否符合要求

最后再提交判断服务器内是否有这个用户名和密码

案例-用户登录提示框的样式

目标:使用提示框,反馈提示消息

1.显示提示框
2.不同的提示文字msg,有不同的样式isSuccess(true成功绿色,false失败红色)
3.过2秒后,让提示框自动消失

代码如下

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>登录案例</title>
		<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" />
		<style>
			.show{
				display: none;
			}
			.red{
				background-color: orangered;
			}
			.green{
				background-color: lawngreen;
			}
		</style>
	</head>
	<body>
		<div class="container">
			<h3>欢迎,登录</h3>
			<!-- 登录结果-提示框 -->
			<div class="alert alert-success show" role="alert" style="border: 1px solid blue;text-align: center;opacity: 0.5;">
				提示消息
			</div>
			<!-- 表单 -->
			<div class="form_wrap">
				<form action="">
					<div class="mb-3">
						<label for="username" class="form-label">账号名</label>
						<input type="text" class="form-control username" />
					</div>
					<div class="mb-3">
						<label for="password" class="form-label">密码</label>
						<input type="password" class="form-control password"/>
					</div>
					<button type="button" class="btn btn-primary btn-login" style="margin-top: 5px;margin-left: 9px;">登录</button>
				</form>
			</div>
		</div>
		<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
		<script>
			// 目标1:点击登录时,用户名和密码长度判断,并提交数据和服务器通信
			// 目标2: 使用提示框,反馈提示消息
			// 2.1 获取提示框
			const myAlert = document.querySelector('.alert')
			/**2.2 封装提示框函数,重复调用,满足提示需求
				功能:
				1.显示提示框
				2.不同的提示文字msg,有不同的样式isSuccess(true成功绿色,false失败红色)
				3.过2秒后,让提示框自动消失
			**/ 
			function alerFn(msg,isSuccess){
				// 1.显示提示框
				myAlert.classList.remove('show')
				
				// 2.实现提示消息
				myAlert.innerHTML = msg
				// 2.2 根据提示情况修改颜色
				const colo = isSuccess ? 'green' : 'red'
				myAlert.classList.add(colo)
				
				// 3.显示后过两秒自动隐藏
				setTimeout(()=>{
					myAlert.classList.add('show')
					myAlert.classList.remove('colo')//这里确保能被重置
				},2000)
			}
			
			
			// 1.1 登录-点击事件
			document.querySelector('.btn-login').addEventListener('click',()=>{
				//1.2 获取用户名和密码
				const username= document.querySelector('.username').value
				const password = document.querySelector('.password').value
				// console.log(username,password)
				// 1.3 判断长度
				if (username.length < 8){
					alerFn('用户名必须大于等于8位',false)
					console.log('用户名必须大于等于8位')
					return//阻止代码继续执行
				}else if(password.length < 6){
					alerFn('密码必须大于等于6位',false)
					console.log('密码必须大于等于6位')
					return//阻止代码继续执行
				}
				// 1.4 基于axios提交用户名和密码
				axios({
					url:'https://hmajax.itheima.net/api/login',
					method:'POST',
					data:{
						username:username,
						password:password,
					}
				}).then(result => {
					alerFn(result.data.message,true)
					console.log(result)//这里打印输出服务器返回的数据
					console.log(result.data.message)//打印登录的结果
				}).catch(error=>{
					console.log(error)//打印登录失败的返回数据
					console.log(error.response.data.message)//打印登录的结果
				})
			})
 		</script>
	</body>
</html>

主要添加的代码如下

form-serialize使用

作用:快速收集表单元素的值

语法如图

标签:username,用户名,console,form,登录,serialize,password,log
From: https://www.cnblogs.com/lzyzjb/p/18006496

相关文章

  • ssh远程管理实现从交换机登录交换机
    ssh分为两个版本,使用命令行对虚拟机进行设置操作的时候需要注意对ssh版本的支持问题。ssh使用非对称加密方法————设置公钥私钥。对于收发消息双方,只需一方生成公钥私钥,将其中一个发送给对端,对端使用收到的密钥处理数据,另一种数据用于本端处理数据。举例如下:A发数据给B:A生成......
  • YouTrack 用户登录提示 JIRA 错误
    就算输入正确的用户名和密码,我们也得到了下面的错误信息:youtrackCannotretrieveJIRAuserprofiledetails.   解决办法出现这个问题是因为YouTrack在当前的系统重有JIRA的导入关联。需要把这个导入关联取消掉。找到后台配置的导入关联,然后禁用持续导入功能。   这样......
  • Github登录 2FA(Two-Factor Authentication/两因素认证) 浏览器插件-已验证
    Github登录2FA(Two-FactorAuthentication/两因素认证)浏览器插件-已验证chrome装下这个扩展身份验证器https://chromewebstore.google.com/detail/身份验证器/bhghoamapcdpbohphigoooaddinpkbai?pli=1装好以后,到登录的页面,有个二维码,用这个插件扫一下就能登录了,然后就有......
  • MAUI StringFormat示例
    MAUI中StringFormat的常见用法货币格式<TextBlockText="{BindingPrice,StringFormat='{0:C}'}"/>//$123.46<TextBlockText="{BindingPrice,StringFormat='{0:C1}'}"/>//$123.5前缀后缀<TextBoxText="{Bin......
  • Winform中设置隐藏窗体且不在任务栏中显示
    场景Winform中设置程序开机自启动(修改注册表和配置自启动快捷方式):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/135764400通过以上方式设置winform程序开机自启动之后,需要启动后判断配置文件如果不为空则窗体隐藏,任务后台进行。Winform中实现保存配置到文件/......
  • C# Winform窗体里面怎么打开exe程序
    C#Winform窗体里面怎么打开exe程序System.Diagnostics.Processprocess=newSystem.Diagnostics.Process();process.StartInfo.FileName="要调用的exe名称";process.StartInfo.WorkingDirectory=path//要掉用得exe路径例如:"C:\windows";process.StartInfo.CreateNoWi......
  • el-upload 跟Form表单一起提交
     vue el-upload上传<el-col:span="20"><el-form-item:label="$t('message.common.file')"prop="uploadFileList"el-uploadclass="upload-demo"dragname="uploadFile'ref="upload"......
  • Qt Creator配置clang-format格式化代码插件
    clang-format是一种格式化代码的插件,可用于格式化C/C++/Java/JavaScript/Objective-C/Protobuf/C#代码。而QtCreator的格式化代码的功能只支持非常简单的缩进纠正,本博客主要讲述如何在QtCreator上配置clang-format插件。打开Beautifier插件打开帮助->关于插件......
  • 多台WIN10之间的SSH免密登录
    网上有很多关于使用win10-ssh客户端登录linux-ssh服务端的介绍,但很少介绍多台win10-ssh服务端之间互访的。以下记录如何免密登录win10-ssh服务。1、安装OpenSSH。网上有很多介绍通过添加win10可选功能安装openssh,此处不赘述。如果通过添加可选功能出现安装失败,可以下载opens......
  • Qt Creator使用clang-format实现源代码格式化排版(Windows/macOS)
    本篇先针对Windows系统来描述,末尾再补充macOS1、clang官网下载clang-format.exeLLVMDownloadPage 下载最新版本Releases·llvm/llvm-project·GitHub方法1:完整版我们需要从官网下载完整的LLVM编译器,Pre-BuiltBinaries,Windows(64-bit),LLVM-9.0.0-win64.exe。安装时,请......