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 相关文章推荐
分享14个很酷的jQuery导航菜单插件
Apr 25 Javascript
用jquery实现自定义风格的滑动条实现代码
Apr 26 Javascript
判断多个input type=file是否有已经选择好文件的代码
May 23 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
Jun 03 Javascript
JavaScript数据类型检测代码分享
Jan 26 Javascript
js实现网页抽奖实例
Aug 05 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
jQuery中设置form表单中action值的实现方法
May 25 Javascript
微信小程序 location API接口详解及实例代码
Oct 12 Javascript
解析js如何获取css样式
Dec 11 Javascript
JavaScript通过filereader接口读取文件
May 10 Javascript
解决Vue router-link绑定事件不生效的问题
Jul 22 Javascript
js正则匹配markdown里的图片标签的实现
浅谈react路由传参的几种方式
Mar 23 #Javascript
一百多行代码实现react拖拽hooks
node中使用shell脚本的方法步骤
详解如何解决使用JSON.stringify时遇到的循环引用问题
vue 中 get / delete 传递数组参数方法
Mar 23 #Vue.js
JavaScript实现页面动态验证码的实现示例
You might like
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
php获取汉字首字母的函数
2013/11/07 PHP
PHP解析html类库simple_html_dom的转码bug
2014/05/22 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
2017/08/07 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
介绍一下gcc特性
2012/01/20 面试题
建龙钢铁面试总结
2014/04/15 面试题
店长岗位职责
2013/11/21 职场文书
长城导游词
2015/01/30 职场文书
2015年学校教科室工作总结
2015/07/20 职场文书
关于运动会的广播稿
2015/08/19 职场文书
《春酒》教学反思
2016/02/22 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang