AJAX检测用户名是否存在的方法


Posted in Javascript onMarch 24, 2021
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
 <h2>用户注册</h2>
 <form action="/doreg" method="post">
  <ul>
   <li>用户名:<input type="text" name="username" id="user"><span id="msg"></span></li>
   <li>密码:<input type="text" name="pwd"></li>
   <li>确认密码:<input type="text" name="repwd"></li>
   <li><input type="submit" value="注册"></li>
  </ul>
 </form>
 <script>
  let user = document.querySelector("#user")
  let msg = document.querySelector("#msg")
  user.onblur = function(){
   // alert("hello")
   // 第一步:创建一个ajax对象
   let xhr = new XMLHttpRequest(); // xhr表示ajax对象 此时ajax的状态是0
   // console.log(xhr.readyState)
   // 第二步:和服务器建立连接 get表示需要把数据放在url中
   xhr.open("get","/check?username="+user.value)// 此时ajax的状态是1
   // console.log(xhr.readyState)
   // 第三步:发出请求
   xhr.send(null); // null表示请求体是空 get请求的请求体都是空 post请求的请求体不空
   // 第四步:得到服务器响应的结果 监听ajax状态变化
   xhr.onreadystatechange = function () { // 当状态发生改变,就会触发onreadystatechange事件
    // console.log(xhr.readyState); // xhr.readyState获取ajax对象的状态
    if(xhr.readyState === 4 && xhr.status == 200){
     // xhr.responseText 获取服务器响应的数据
     // console.log(xhr.responseText)
     msg.innerHTML = xhr.responseText;
    }
   }
 
  }
 
 </script>
</body>
</html>
let express = require("express");
let bodyParser = require("body-parser");
let app = express();
 
// 给ejs模板引擎设置别名,别名叫html
app.engine("html",require("ejs").__express);
app.set("view engine","html");// 使用html模板引擎
// 指定模板的存放位置
app.set("views","./views")
 
// 配置bodyParser
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:false}))
 
// 路由
app.get("/",(req,res)=>{
 res.render("reg01"); // 渲染模块
})
 
// 处理注册
app.post("/doreg",(req,res)=>{
 // 获取客户端传递的数据
 let username = req.body.username.trim();
 let pwd = req.body.pwd.trim();
 let repwd = req.body.repwd.trim();
 // console.log(username,pwd,repwd)
 
 // 模拟从数据库中获取的用户信息
 let users = ["wangcai","xiaoqiang","admin"];
 if(users.find(user=>user===username)){
  res.send("<h1 style='color: red'>对不起,该用户名已经被注册了,请换个用户名~<a href='/'>返回注册页</a></h1>")
 }else{
  res.send("<h1 style='color: green'>恭喜你,该用户名可以使用~<a href='/'>返回注册页</a></h1>")
 }
})
 
app.listen(3000,()=>{
 console.log("server is running on 3000~")
})

 

Javascript 相关文章推荐
DOMAssitant最新版 DOMAssistant 2.5发布
Dec 25 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
Oct 22 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
Feb 03 Javascript
javascript:void(0)使用探讨
Aug 27 Javascript
jquery及原生js获取select下拉框选中的值示例
Oct 25 Javascript
jQuery中fadeOut()方法用法实例
Dec 24 Javascript
JavaScript实现LI列表数据绑定的方法
Aug 04 Javascript
详解jQuery中的empty、remove和detach
Apr 11 Javascript
JS获取和修改元素样式的实例代码
Aug 06 Javascript
关于js二维数组和多维数组的定义声明(详解)
Oct 02 Javascript
JQuery扩展对象方法操作示例
Aug 21 jQuery
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
Sep 19 Javascript
js正则匹配markdown里的图片标签的实现
浅谈react路由传参的几种方式
Mar 23 #Javascript
一百多行代码实现react拖拽hooks
node中使用shell脚本的方法步骤
详解如何解决使用JSON.stringify时遇到的循环引用问题
vue 中 get / delete 传递数组参数方法
Mar 23 #Vue.js
JavaScript实现页面动态验证码的实现示例
You might like
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
php对数组排序的简单实例
2013/12/25 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
梳理一下vue中的生命周期
2020/12/30 Vue.js
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
python实现socket客户端和服务端简单示例
2014/02/24 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
python 同时运行多个程序的实例
2019/01/07 Python
Python----数据预处理代码实例
2019/03/20 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
python logging 日志的级别调整方式
2020/02/21 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
大学生预备党员自我评价分享
2013/11/16 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
期末考试复习计划
2015/01/19 职场文书
2016教师节感恩话语
2015/12/09 职场文书
《水上飞机》教学反思
2016/02/20 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
浅谈Redis的事件驱动模型
2022/05/30 Redis