浅析JavaScript的用户登录表单—焦点事件

开发 前端
在Web项目开发中,经常会在表单验证功能看到焦点事件。例如,文本框获取焦点改变文本框的颜色,文本框失去焦点检验输入的文本框的内容是否正确等。接下来,小编带大家一起来实现一个用户登录的表单!

[[429723]]

一、前言

大家好,我是前端进阶者。在Web项目开发中,经常会在表单验证功能看到焦点事件。例如,文本框获取焦点改变文本框的颜色,文本框失去焦点检验输入的文本框的内容是否正确等。接下来,小编带大家一起来实现一个用户登录的表单!

二、项目准备

开发工具:HBuilderX

浏览器:Google Chrome浏览器

三、项目目标

1.掌握焦点事件的使用。

2.理解获取焦点和失去焦点知识。

3.学会运用封装函数。

四、项目实现

HTML

  1. <div id="box"
  2. <div id="img"
  3.     <img src="img/1.jpg" /> 
  4. </div> 
  5. <div id="form"
  6.     <label>账号:<input type="text" id="user"></label> 
  7.     <label>密码:<input type="text" id="pwd"></label> 
  8.     <div id="btn"
  9.     <button id="btn_ok">登录</button> 
  10.     <button id="btn_ok">注册</button> 
  11.     </div> 
  12. </div> 
  13. <div id="show"></div> 
  14. </div> 

在上面代码中,div的id为box相当于一个大盒子,div的id为img、form、show为小盒子。

id为img主要是放置图片;

id为form主要是放置表单,在里面嵌套还有一个div,它的id为btn,主要是放置登录、注册按钮;

id为show是用来显示提示信息。

CSS3

  1. #box{ 
  2.     margin-top: 20px; 
  3.     width: 800px; 
  4.     height: 400px; 
  5.     display: flex; 
  6.     text-align: center; 
  7.     flex-direction: column
  8.     justify-content: center; 
  9. #form{ 
  10.     display: flex; 
  11.     flex-direction: column
  12.     justify-content: center; 
  13. #btn{ 
  14.     display: flex; 
  15.     text-align: center; 
  16.     flex-direction: row; 
  17.     justify-content: center; 
  18. #user
  19.     margin-bottom: 10px; 
  20. #btn_ok{ 
  21.     margin-top: 10px; 
  22.     margin-right: 20px; 
  23. #show{ 
  24.     margin-top: 10px; 
  25.     color: red; 

在上面代码中,#box表示大盒子的样式,宽度和高度分别为800、400px,margin-top属性表示上外边距为20px,使用弹性布局display: flex;

flex-direction属性表示控制主轴的方向,colum表示垂直方向,row表示水平方向。

justify-content属性表示项目在主轴上的对齐方式,center表示中间。

text-align属性表示文字对齐方式。

margin-bottom属性表示设置元素的下外边距。

margin-right属性表示设置元素的右外边距。

JavaScript

1.获取元素操作的对象

  1. function $(id){ 
  2.     return document.getElementById(id); 

在上面代码中,$(id)函数用于根据id获取元素。

id参数表示标签元素自定义的id名称,例如,a标签的id="abc",获取该元素对象调用$('abc')函数就可以获取元素的对象。

2.给指定元素添加失去焦点事件

  1. function addBlur(m){ 
  2.     m.onblur=function(){ 
  3.         isEmpty(this); 
  4.     } 

在上面代码中,指定元素添加失去焦点方法是onblur方法。调用isEmpty()函数判断表单是不是为空。

3.检验指定元素失去焦点,它的value值是不是为空

  1. window.onload=function(){ 
  2.     addBlur($('user')); 
  3.     addBlur($('pwd')); 

在上面代码中,window.onload表示页面一加载就触发。

检验id为user和pass的元素如果失去焦点,它的value值是不是为空。

4.检验表单是不是为空

  1. function isEmpty(m){ 
  2.     if(m.value===''){ 
  3.         $('show').style.display='block'
  4.         $('show').innerHTML='您输入的内容不能为空!'
  5.     }else
  6.         $('show').style.display='none'
  7.  
  8.     } 

在上面代码中,如果表单内容为空,向id为show对象中插入提示内容。

5.处理登录按钮事件——判断账号和密码是否正确

  1. $('btn_ok').onclick=function(){ 
  2.     if(($('user').value=='abc')&&($('pwd').value=='123')){ 
  3.         $('show').style.display='block'
  4.         $('show').innerHTML='登录成功!'
  5.     }else
  6.         $('show').style.display='block'
  7.         $('show').innerHTML='账号或密码错误!'
  8.     } 

在上面代码中,处理登录按钮事件,判断账号和密码输入框内容分别是否是abc、123。如果账号和密码输入正确或错误,向id为show对象中插入提示内容。

效果图如下所示:

五、总结

1.本文基于JavaScript基础,实现用户登录的功能。对每一个div层进行详解,让读者更好的理解。

2.在JavaScript中首先获取操作元素的对象,给指定元素添加失去焦点事件,之后,检验指定元素失去焦点,它的value值是否为空,检验表单是否为空。最后处理登录按钮的事件。主要是帮助大家理解焦点事件的知识点!

3.代码没有那么复杂,希望对你有所帮助!

 

责任编辑:姜华 来源: 前端进阶学习交流
相关推荐

2021-03-16 10:00:40

JavaScript用户登录表单JavaScript基

2016-09-14 21:28:25

JavaScript事件代理委托

2021-09-06 10:21:27

JavaScript表单对象 前端

2013-11-29 09:26:40

综合布线万兆铜缆智能管理

2021-07-27 22:56:00

JavaScript编程开发

2009-08-12 15:20:21

C#事件处理

2016-10-19 14:35:20

JavaScript函数式编程

2016-09-06 21:37:41

2009-07-24 17:30:37

Javascript闭

2021-02-07 22:59:55

JavaScript编程方法链

2011-03-07 09:41:10

JavaScript

2010-09-28 14:12:50

Javascript

2011-03-10 14:19:56

JavaScript

2010-04-14 14:14:42

Oracle用户解锁

2009-10-28 08:51:40

远程接入技术

2009-09-07 04:19:56

C#窗体事件

2011-03-08 09:15:04

JavaScript

2022-01-17 21:37:24

JavaScriptHTMLCSS

2009-07-03 14:41:03

2012-01-06 09:09:56

JavaScript
点赞
收藏

51CTO技术栈公众号