js事件登录案例

CSS padding(填充)是一个简写属性,定义元素边框与元素内容之间的空间,即上下左右的内边距。

padding(填充)
当元素的padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充。

单独使用padding属性可以改变上下左右的填充。

Padding属性,可以有一个到四个值:

padding:25px 50px 75px 100px 分别代表:上填充,右填充,下填充,左填充

padding:25px 50px 75px 分别代表:上填充,右左填充,下填充

padding:25px 50px 分别代表:上下填充,右左填充

padding:25px 分别代表:上下右左填充

所有的CSS填充属性
属性 说明
padding 使用简写属性设置在一个声明中的所有填充属性
padding-bottom 设置元素的底部填充
padding-right 设置元素的右部填充
padding-top 设置元素的顶部填充

.使用margin简化写法注意事项:
如果提供全部四个参数值,将按上、右、下、左的顺序作用于四边。

如果只提供一个,将用于全部的四边。

如果提供两个,第一个用于上、下,第二个用于左、右。

如果提供三个,第一个用于上,第二个用于左、右,第三个用于下。

auto是页面左右留白相同的意思

border属性及其应用
border 简写属性在一个声明设置所有的边框属性。
border: width style color
可以按顺序设置如下属性:

border-width
1.可以指定长度值,比如 2px 或 0.1em(单位为 px, pt, cm, em 等)
2.或者使用 3 个关键字之一,它们分别是 thick 、medium(默认值) 和 thin。

border-style
1.none: 默认无边框
2.dotted: 定义一个点线边框
3.dashed: 定义一个虚线边框
4.solid: 定义实线边框
5.double: 定义两个边框。 两个边框的宽度和 border-width 的值相同
6.groove: 定义3D沟槽边框。效果取决于边框的颜色值
7.ridge: 定义3D脊边框。效果取决于边框的颜色值
8.inset:定义一个3D的嵌入边框。效果取决于边框的颜色值
9.outset: 定义一个3D突出边框。 效果取决于边框的颜色值

border-color
name - 指定颜色的名称,如 “red”
RGB - 指定 RGB 值, 如 “rgb(255,0,0)”
Hex - 指定16进制值, 如 “#ff0000”
**布局 **

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
				<style>
					*{/*通配符选择器   消除默认样式*/
						margin:0;
						padding:0;
					}
					form{/*元素选择器  设置form的样式*/
						
						
						/*内边距  上下左右填充为20px  
						 * 外边距四面相等50px   auto左右水平居中
						 * 边框3px宽实线粉色
						 * display:flex; 弹性布局
						 *  flex-direction:column;/*主轴设置为y轴
						 * 
						 * CSS里面的font-size我们都知道是用来设置字体大小的,
						
						 */ 
						width:500px;
						padding:20px;
						margin:50px auto;
						border:3px solid pink;
						display:flex;
						flex-direction:column;
						font-size:30px;
						padding-top:50px;
						position:relative;
					}
					
					form>span{
						position:absolute;
						left:50%;
						top:5px;
						transform: translateX(-50%);/*让它横向居中*/
						width:100%;
						text-align:center;
						color:red;
						display:none;/*平时不让其显示*/
					}
					form>label{/*  和空格一样应该也是一种包含选择器的写法*/  
						height:50px;
					}
					
					form>label>input{/*文本框也需要调大一些*/
						font-size:24px;
						height:40px;
						padding-left:20px;
					}
				</style>
	</head>
	<body>
		<form>
			<span>用户名或者密码错误!!</span>
			<label>
				用户名:<input type="text">
			</label>
			<label>
				密 码:<input type="text">
			</label>
			<button>登录</button>
		</form>
	<script>
		
	</script>
	</body>
</html>

需要如何发送给后端?
=>按照接口文档的规范进行发送

在这里插入图片描述

<body>
		<form>
			<span class="error" >用户名或者密码错误!!</span>
			<label>
				用户名:<input class="username" type="text">
			</label>
			<label>
				密 码:<input class="password"     type="text">
			</label>
			<button>登录</button>
		</form>
	<script>
		/*
		 案例  -登录
		 需求分析:
		 +问题1:什么时候进行发送请求?
		 =>点击登录按钮的时候
		 =》需要给 form 标签绑定一个表单提交事件
		 +问题2:需要拿到那些信息?
		 =>需要拿到用户填写的用户名和密码
		 +问题3:需要如何发送给后端?
		 =>按照接口文档的规范进行发送
		 * 
		 * 问题4:请求完成之后,我们需要做什么?
		 * =>根据后端返回的信息,进行一些后序的操作
		 * =>如果后端返回的信息是登录成功,那么我们进行页面跳转
		 * =>如果后端返回的是登陆失败,那么我们提示用户错误
		 * */
		
		//0.获取元素
		//0-1 获取form 标签   绑定表单提交事件
		var loginForm = document.querySelector('form')//获取form元素
		//querySelector()该方法接受一个css 查询并返回该匹配模式的第一个子元素,
		//如果没有匹配的元素则返回null
		
		//0-2  用户名文本框
		var nameInp = document.querySelector('.username')
		
		//0-3  密码文本框
		var pwdInp=document.querySelector('.password')
		
		//0-4 错误提示文本
		var errBox=document.querySelector('.error')
		
		
		//1.给from标签绑定表单提交事件
		loginForm.onsubmit = function(e){
			//注意:阻止表单的默认提交行为
			e.preventDefault()//阻止默认事件方法
			/*loginForm.onsubmit = function(e)*/
			/*,作用是取消一个目标元素的默认行为。

既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就没有默认行为,调用当然就无效了。

什么元素有默认行为呢?如链接<a>,提交按钮<input type=”submit”>等。

当Event 对象的 cancelable为false时,表示没有默认行为,这时即使有默认行为,调用preventDefault也是不会起作用的。
*/
			//console.log('我要发送 ajax 请求')
			
			
			//2.拿到填写的用户名和密码
			var name=nameInp.value
			var pwd =pwdInp.value
			
			
			//2-2  验证用户名和密码
			if(!name || !pwd) return alert('请完整填写表单')
			console.log(name,pwd)
			
			//3.发送ajax请求
			//查看接口文档发现是post请求,那么我们就需要按post请求来发送
			//创建ajax对象    配置本次的请求信息
			var xhr = new XMLHttpRequest()
			xhr.open('POST','http://localhost:8888/users/login',true)
			xhr.onload = function(){
				//因为后端返回的是Jison格式数据
				var res = JSOsN.parse(xhr.responseText)
				console.log(res)
				//进行条件判断
				if(res.code===0){
					//登陆失败了
					//失败应该提示错误文本
					errBox.style.display='block'
				}else{
					//登录成功了
					window.location.href='./登录案例home.html'
				}
			}
		}
		//因为POST请求携带参数是在请求体内
		
		xhr.setRequestHeader('content-type','application/x-www-form-urlencoded')
		//注意
		//post 请求携带参数需要提前说明
		    xhr.send('username='+ name +'&password='+ pwd)	
		    //发现参考文档内有 username   和 password 两个参数
		    
	</script>
	</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

约卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值