JS实现对用户名、密码进行正则表达式判断,按钮绑定多个事件,网页跳转

ops/2024/11/19 13:16:51/

目标:使用JS实现对用户名和密码进行正则表达式判断,用户名和密码正确时,进行网页跳转。

用户名、密码的正则表达式检验

HTML代码:

<button type="submit" id="login-btn" /*onclick="login();alidateLogin();"*/ onblur="checkusernameandpassword()">登录</button>

为button标签添加一个聚焦事件 :οnblur="checkusernameandpassword()"

当输入完成后,点击其他地方,就能进行判断,如果用户名和密码都符合,则在控制台输出“用户名和密码合法”,否则输出“用户名和密码不合法”

JS代码:

javascript">/* 使用正则表达式验证登录时的用户名和密码是否合法 */  
function checkusernameandpassword() {const username = document.querySelector('#login-username').value;const password = document.querySelector('#login-password').value;const usernameRegex = /^[a-zA-Z0-9_-]{5,15}$/;const passwordRegex = /^[a-zA-Z0-9_-]{5,15}$/;if (usernameRegex.test(username) && passwordRegex.test(password)) {console.log('用户名和密码合法');return true;} else {console.log('用户名或密码不合法');return false;}
} 

JS实现一个按钮绑定两个onclick事件

HTML代码:

<button type="submit" id="login-btn" /*onclick="login();alidateLogin();"*/ onblur="checkusernameandpassword()">登录</button>

 不在button中绑定onclick事件,而是使用id属性绑定JS函数进行绑定多个onclick事件

JS代码:

javascript">/* 一个按钮绑定两个事件 */  
var btn = document.getElementById("login-btn");
btn.addEventListener("click", login);
btn.addEventListener("click", validateLogin);

 获取id为login-btn的元素,对该元素添加事件,点击触发,分别为login()、validateLogin()

模拟登录实现: 

HTML代码:

<button type="submit" id="login-btn" /*onclick="login();alidateLogin();"*/ onblur="checkusernameandpassword()">登录</button>

JS代码:

javascript">/* 登录时验证用户名和密码 */  
function validateLogin() {const username = document.querySelector('#login-username').value;const password = document.querySelector('#login-password').value;if (username === 'admin' && password === '123456') {console.log('登录成功');window.location.href = 'index.html';return true;} else {console.log('登录失败');return false;}
} 

 只有用户名为:admin    且密码为:123456 

才能实现登录。

登录成功时,执行window.location.href = '跳转页面地址'


http://www.ppmy.cn/ops/17287.html

相关文章

C++ vs Rust vs Go性能

比较 C、Rust 和 Go 的性能涉及许多因素&#xff0c;包括编程语言本身的特性、编译器优化、代码实现方式等。我将提供一个简单的代码示例&#xff0c;演示如何使用这三种语言编写一个简单的计算斐波那契数列的程序&#xff0c;并在每种语言下进行性能比较。 C 代码示例&#x…

8点法估计基础矩阵

估计基础矩阵 文章目录 估计基础矩阵8点法归一化 8点法 8点法 根据两幅图像中8个对应点对之间的关系&#xff0c;采用SVD求 解最小二乘方 约束&#xff1a;det(F) 0 假设已知N对点的对应关系&#xff1a; { x i , x i ′ } i 1 N \{x_i,x^{\prime}_i\}_{i1}^N {xi​,xi′​…

transformer 最简单学习3, 训练文本数据输入的形式

1、输入数据中&#xff0c;源数据和目标数据的定义 def get_batch(source,i):用于获取每个批数据合理大小的源数据和目标数据参数source 是通过batchfy 得到的划分batch个 ,的所有数据&#xff0c;并且转置列表示i第几个batchbptt 15 #超参数&#xff0c;一次输入多少个ba…

AI论文速读 |2024[TPAMI]【综述】自监督学习在时间序列分析的分类、进展与展望

题目&#xff1a; Self-Supervised Learning for Time Series Analysis: Taxonomy, Progress, and Prospects 作者&#xff1a;Kexin Zhang, Qingsong Wen(文青松), Chaoli Zhang, Rongyao Cai, Ming Jin(金明), Yong Liu(刘勇), James Zhang, Yuxuan Liang(梁宇轩), Guansong…

docker-MySQL 8 主从搭建

一.目录结构&#xff1a; 我是在/home目录下&#xff0c;建立个sql文件夹&#xff1a; 二、配置文件 1.mysql配置 mysql-master下.conf文件配置 ###### [mysqld] server-id1 # 启用二进制日志 log-binmaster-bin # 指定需要复制的数据库 binlog-do-dbtest_db # 指定二进制日…

Linux bond0 配置方法

Centos7 配置文件 关闭 NetworkManager systemctl stop NetworkManager systemctl disable NetworkManager修改网卡配置文件 bond0 配置文件 cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICEbond0 ONBOOTyes IPADDR192.168.0.100 NETMASK255.255.255.0 GATEWAY192.…

高通发布电脑CPU,比英特尔Ultra9领先51%

要说2024年最热门的关键词&#xff0c;那肯定非 AI 莫属&#xff0c;当前 AI 已经开始深入各行各业&#xff0c;AI 电视、AI 手机、AI 车机、AI 家电&#xff0c;以及 AI PC ,这些都意味着 AI 将对各个行业带来的新风向和不小的冲击。 2024 年了&#xff0c;PC 处理器还能卷出什…

python语音版东北方言小词典

目录 一.前言 二.代码 三.分析 一.前言 东北方言是中国境内最为特色和独特的方言之一,它主要分布在中国东北地区的吉林、辽宁和黑龙江省。这个地区被称为“东北三省”,所以也被称为“东北话”或“东北官话”。 东北方言与普通话(官话)有着明显的差异,包括发音、词汇…