当前位置: 首页 > news >正文

JS简单表单验证

这里我是写了一个简单的注册表单验证功能,亲测有效,一起来看看吧!

首先我的HTML代码是这样的:

class大家可以忽略一下,这里我项目使用的是bootstrap的样式。

输入用户名和密码用的是正则表达式控制格式,在title里有描述。

最后一行的h6标签用来存放提示信息。

 1 <form class="form-horizontal" v-on:submit="addUserNormal">
 2       <div class="form-position">
 3         <div class="form-group">
 4           <span class="glyphicon glyphicon-user control-label col-sm-2"></span>
 5           <div class="col-sm-6">
 6             <input type="text" class="form-control" id="username" 
 7             placeholder="请输入用户名" pattern="^[a-zA-Z][a-zA-Z0-9_]{4,15}$" title="用户名格式为:字母开头,允许5-16字节,允许字母数字下划线" v-model="user.username">
 8           </div>
 9         </div>
10         <div class="form-group">
11           <span class="glyphicon glyphicon-question-sign control-label col-sm-2"></span>
12           <div class="col-sm-6">
13             <input type="password" class="form-control" id="password1" 
14             placeholder="请输入密码" pattern="^[a-zA-Z][a-zA-Z0-9_]{4,15}$" title="密码请输入以字母开头,长度在5~17 之间,只能包含字符、数字和下划线组成的字符串"  onpaste="javascript: return false;" v-model="user.password1">
15           </div>
16         </div>
17         <div class="form-group">
18           <span class="glyphicon glyphicon-question-sign control-label col-sm-2"></span>
19           <div class="col-sm-6">
20             <input type="password" class="form-control" id="password2" 
21             placeholder="再次输入密码" pattern="^[a-zA-Z][a-zA-Z0-9_]{4,15}$" title="密码请输入以字母开头,长度在5~17 之间,只能包含字符、数字和下划线组成的字符串"  onpaste="javascript: return false;" v-model="user.password2">
22           </div>
23         </div>
24         <div class="form-group middle">
25           <div class="col-sm-6">
26             <button type="submit" class="login-btn-position btn btn-block btn-success">新用户注册</button>
27           </div>
28         </div>
29       </div>
30     </form> 
31     <h6 id="alert" class="alert"></h6>

 

这是我的函数,当点击提交时触发,由于获取json数据在network里明文显示了,那么这里我使用了md5加密,使用方法是加入js文件,括号里放字符串就能自动加密成密文,可以在注册后将输入的密码传回后台保存,登录时返回密文进行对比就行。这里要注意的是:md5加密是不可转回的,别人就算获取了你的密文也没办法破解你的密码,但是如果你的业务需求需要保存用户的密码可以使用其他加密方法。

解释补充在了注释里

 1 addUserNormal(e){
 2          var password1 = md5(this.user.password1);
 3          var password2 = md5(this.user.password2);
 4          var No = md5();
 5          var num = 0;
 6          var alertHtml = document.getElementById("alert");
 7          if(!this.user.username){
 8           alertHtml.innerHTML="用户名为空,请正确填写!";
 9           alertHtml.style.display="block";
10           }
11           else if(password1 === No || password2 === No){//若有一个密码为空,则出现提示信息
12             alertHtml.innerHTML="密码为空,请正确填写!";
13             alertHtml.style.display="block";
14           }
15       else if(password1 != password2){//若密码不一致,则出现提示信息
16             alertHtml.innerHTML="密码不一致,请正确填写!";
17             alertHtml.style.display="block";
18       }
19           else{
20             for(var i = 0; i < this.users.length; i++){//遍历获得的总用户名   
21               if(this.user.username === this.users[i].username){
22                 num++;   //r若有注册过,则num会变动
23               }
24             }
25             if(num != 0){ 
26               alert("用户名"+this.user.username+"已注册!");
27               //这里希望有注册的用户名后刷新页面            
28               return;
29             }
30             let userNormal = {
31               username:this.user.username,
32               password:password1,
33             }
34             $.post("http://localhost:3000/userNormal",userNormal).
35             then(function(response){
36                  // console.log(response);//传回成功信息
37                  alert("用户"+userNormal.username+"注册成功!");
38                  window.location.href="LoginNormal.html";
39               })
40           }
41           e.preventDefault();//这里好像是阻止了登录时候的刷新,如果你输入错了,这里还是有用处
42         }

加油啊柯基~

转载于:https://www.cnblogs.com/JobsOfferings/p/JonsOfferings_Sign.html

相关文章:

  • 创建并运行HelloWorld Java项目和类
  • Lp空间
  • 【转】简单的计算机英语列表
  • (4)logging(日志模块)
  • 自己动手实现java数据结构(二) 链表
  • Encoding Convert
  • 10月18日 JS begant
  • 我判断求职者的思路和方法——从“经验歧视”谈起
  • 2018-2019-1 20189206 《Linux内核原理与分析》第八周作业
  • 《十面埋伏OL》今日15时开启压力测试
  • sqlserver varchar和Nvarchar区别
  • P5043 【模板】树同构([BJOI2015]树的同构)
  • SUSE10.1在VM安装时No catalog found的解决办法
  • 当你不能回答别人的提问时怎么办
  • 今天是上来看看的
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • cookie和session
  • interface和setter,getter
  • javascript面向对象之创建对象
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Node项目之评分系统(二)- 数据库设计
  • react-native 安卓真机环境搭建
  • Sass 快速入门教程
  • spring-boot List转Page
  • sublime配置文件
  • 码农张的Bug人生 - 见面之礼
  • 判断客户端类型,Android,iOS,PC
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 《码出高效》学习笔记与书中错误记录
  • ​520就是要宠粉,你的心头书我买单
  • ​马来语翻译中文去哪比较好?
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (七)理解angular中的module和injector,即依赖注入
  • .net core Swagger 过滤部分Api
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net MySql
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net 使用ajax控件后如何调用前端脚本
  • .NET 指南:抽象化实现的基类
  • .NET构架之我见
  • .NET使用存储过程实现对数据库的增删改查
  • .skip() 和 .only() 的使用
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [AutoSar]BSW_OS 01 priority ceiling protocol(PCP)
  • [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)
  • [CISCN2019 华东南赛区]Web11
  • [C语言]——分支和循环(4)
  • [Geek Challenge 2023] web题解
  • [Grafana]ES数据源Alert告警发送