关于登入界面提示实践案例(JSP + JavaScript)

简介: 有一段文本,属性隐藏,当我们鼠标点击框时(点击事件)来验证输入的长度,如果符合就继续隐藏,如果不符合就取消隐藏。


哈喽~大家好呀,上一次呢我们实现了简单的登入注册界面,并连接了数据库。有很多小伙伴说 “你这登入的账号密码太简单了,我轻轻轻松就能猜到你的账号和密码”,所以为了我们的安全性,让我们这界面一步一步完善。废话少说,下面我们来看看效果图吧。

image.png

简单来说的话就是,在登入那一块加了一个用户与密码格式验证(在我们注册是账户密码通常是 6 ~ 12 位的)。接下来我们来看看代码是怎样实现的(连接数据库与页面是如何实现的可以看之前写的文章)。

实现思路

有一段文本,属性隐藏,当我们鼠标点击框时(点击事件)来验证输入的长度,如果符合就继续隐藏,如果不符合就取消隐藏。

1、设置用户名与密码的 id 值

2、写入文本 id 值与属性

3、JavaScript 实现

实现步骤

1、设置用户名与密码的 id 值

<input type="text" placeholder="姓名" name="user" id="user">
<input type="password" placeholder="密码" name="pass" id="pass">

image.gif

2、写入文本 id 值与属性

<span id="username_err" class="err_msg" style="display: none; color: red;padding-right: 170px;">用户名格式有误</span>
<span id="password_err" class="err_msg" style="display: none; color: red;padding-right: 200px;">密码格式有误</span>

image.gif

3、JavaScript 实现

// setTimeout(function () {
//     alert("三秒后跳转到首页,请稍后……")
//     location.href = "login.jsp"
// }, 3000)
var usernameInput = document.getElementById("user"); // 获取 id 属性
usernameInput.onblur = checkUsername;  // 获取触发事件
function checkUsername() { // 检查用户名框
    var username = usernameInput.value.trim(); // trim 作用用来吃空格
    var flag = username.length >= 6 && username.length <= 12;
    if (flag) {
        document.getElementById("username_err").style.display = 'none'; // 隐藏
    } else {
        document.getElementById("username_err").style.display = ''; // 取消隐藏
    }
    return flag; // 返回真假
}
var passwordInput = document.getElementById("pass");
passwordInput.onblur = checkPassword;
function checkPassword() {// 检查密码框
    var password = passwordInput.value.trim();
    var flag = password.length >= 6 && password.length <= 12;
    if (flag) {
        document.getElementById("password_err").style.display = 'none';
    } else {
        document.getElementById("password_err").style.display = '';
    }
    return flag; // 返回真假
}
var regForm = document.getElementById("reg-form"); // 获取提交的 id 值
regForm.onsubmit = function () {
    var flag = checkPassword() && checkUsername(); // 做判断,如果 两个框都没有问题(都为真的情况下,那么才能提交上去)
    return flag;
}

image.gif

点击运行,ok,完成。


相关文章
|
14天前
|
JavaScript 前端开发
js变量的作用域、作用域链、数据类型和转换应用案例
【4月更文挑战第27天】JavaScript 中变量有全局和局部作用域,全局变量在所有地方可访问,局部变量只限其定义的代码块。作用域链允许变量在当前块未定义时向上搜索父级作用域。语言支持多种数据类型,如字符串、数字、布尔值,可通过 `typeof` 检查类型。转换数据类型用 `parseInt` 或 `parseFloat`,将字符串转为数值。
18 1
|
2月前
|
Java
新闻发布项目——后台JSP界面adminManage/addNews.jsp
新闻发布项目——后台JSP界面adminManage/addNews.jsp
13 0
|
2月前
|
Java
新闻发布项目——后台JSP界面adminManage/editNews.jsp
新闻发布项目——后台JSP界面adminManage/editNews.jsp
12 0
|
2月前
|
Java
新闻发布项目——后台JSP界面adminManage/manageTopic.jsp
新闻发布项目——后台JSP界面adminManage/manageTopic.jsp
10 0
|
2月前
|
Java
新闻发布项目——后台JSP界面adminManage/modifyCategory.jsp
新闻发布项目——后台JSP界面adminManage/modifyCategory.jsp
10 0
|
2月前
|
Java
新闻发布项目——后台JSP界面adminManage/newsPage.jsp
新闻发布项目——后台JSP界面adminManage/newsPage.jsp
10 0
|
11天前
|
JavaScript 前端开发 测试技术
【JavaScript技术专栏】JavaScript模块化开发实践
【4月更文挑战第30天】JavaScript模块化开发缓解了大规模应用的复杂性,通过拆分为独立模块提升代码可维护性、可读性和可测试性。CommonJS在Node.js中用于服务器,而AMD(RequireJS)适合浏览器的异步加载。ES6模块结合两者优点,提供原生支持。实践时遵循单一职责、命名规范和依赖管理等原则,借助Webpack、RequireJS等工具提升效率。模块化是现代JavaScript不可或缺的一部分,促进团队协作和代码复用。
|
11天前
|
消息中间件 监控 JavaScript
Node.js中的微服务架构:构建与实践
【4月更文挑战第30天】本文探讨了在Node.js中构建微服务的实践,包括定义服务边界、选择框架(如Express、Koa或NestJS)、设计RESTful API、实现服务间通信(HTTP、gRPC、消息队列)、错误处理、服务发现与负载均衡,以及监控和日志记录。微服务架构能提升应用的可伸缩性、灵活性和可维护性。
|
14天前
|
JavaScript 前端开发
js的let、const、var的区别以及应用案例
【4月更文挑战第27天】ES6 中,`let` 和 `const` 是新增的变量声明关键字,与 `var` 存在显著差异。`let` 允许重新赋值,而 `const` 不可,且两者都具有块级作用域。`var` 拥有函数级作用域,并可在函数内任意位置访问。`let` 和 `const` 声明时必须初始化,而 `var` 不需。根据需求选择使用:局部作用域用 `let`/`const`,全局或函数范围用 `var`,不可变值用 `const`。
23 2
|
17天前
android-agent-web中js-bridge案例
android-agent-web中js-bridge案例
20 2