AJAX的简单示例:注册校验
众所周知,我们每次需要注册一个网站的用户名时,都会校验该邮箱、用户名是不是正确的格式、是不是有被使用过,密码是否符合规则,二次确认是否符合。
如果这些校验都采用form表单提交的话,会给用户带来极不好的体验(form表单提交会刷新网页)。
因此,在此引出ajax的一个作用:局部刷新(用户看不到的刷新)。下面是用于注册示例ajax的局部刷新的简单示例:
注册页面:

ajax代码:
<script>
{#取得iuputEmail框中的内容#}
{#inputeamil = $('#i1').val()#}
{#给邮箱绑定监听事件(失去焦点)#}
$("#i1").blur(function () {
{#隐藏p标签(作用:当检验成功时起作用)#}
$("#emailTip").hide()
$.ajax({
url: "/email_check/",
type: "get",
data: {email:$('#i1').val()},
success: function f(data) {
{#ajax中的判断逻辑与python有区别#}
if (data != "False"){
{#alert(data)#}
$("#emailTip").show()
$("#emailTip").html(data)
}
}
})
}) {#检验帐号#}
$("#inputUserName").blur(function () {
{#隐藏p标签(作用:当检验成功时起作用)#}
$("#userTip").hide()
$.ajax({
url: "/user_check/",
type: "get",
data: {user: $('#inputUserName').val()},
success: function f(data) {
{#ajax中的判断逻辑与python有区别#}
if (data != "False"){
{#alert(data)#}
{#给p标签添加文本(html)内容#}
$("#userTip").show()
$("#userTip").html(data)
}
}
})
}) {#检验密码01 #}
$("#inputPassword1").blur(function () {
$("#pwdTip1").hide()
$.ajax({
url: "/pwd_check1/",
type: "get",
data: {pwd1: $('#inputPassword1').val()},
success: function f(data) {
{#ajax中的判断逻辑与python有区别#}
if (data != "False"){
{#alert(data)#}
{#给p标签添加文本(html)内容#}
$("#pwdTip1").show()
$("#pwdTip1").html(data)
}
}
})
}) {#校验密码02#}
$("#inputPassword2").blur(function () {
$("#pwdTip2").hide()
$.ajax({
url: "/pwd_check2/",
type: "get",
data: {pwd2: $('#inputPassword2').val(), pwd1:$('#inputPassword1').val()},
success: function f(data) {
{#ajax中的判断逻辑与python有区别#}
if (data != "False"){
{#alert(data)#}
{#给p标签添加文本(html)内容#}
$("#pwdTip2").show()
$("#pwdTip2").html(data)
}
}
})
})
</script>
校验代码(views):
# 校验邮箱
def email_check(request):
check_email = request.GET.get("email")
print(check_email)
if check_email:
check_ret = models.UserInfo.objects.filter(email=check_email)
if check_ret:
return HttpResponse("邮箱地址已被使用!")
else:
re_result = re.findall('[a-zA-Z0-9]+@[a-zA-Z0-9\.]+[a-zA-Z]', check_email)
if re_result:
return HttpResponse(False)
else:
return HttpResponse("邮箱地址格式错误!")
else:
return HttpResponse("邮箱地址不能为空!")
# print(email_all) # 校验用户名
def user_check(request):
check_user = request.GET.get("user")
print(check_user)
if check_user:
check_ret = models.UserInfo.objects.filter(userName=check_user)
if check_ret:
return HttpResponse("帐号已被使用!")
else:
return HttpResponse(False)
else:
return HttpResponse("帐号不能为空!") # 检验密码
def pwd_check1(request):
check_pwd1 = request.GET.get("pwd1")
if not check_pwd1:
return HttpResponse("密码不能为空!")
else:
pwd1_len = len(check_pwd1)
re_pwd1 = '^[a-zA-Z][0-9A-Za-z_]+'
re_result = re.findall(re_pwd1, check_pwd1)
if re_result:
if pwd1_len >= 8 and pwd1_len <= 16:
return HttpResponse(False)
else:
return HttpResponse("密码格式为:字母开头,含数字字母下划线,长度大于8且小于16")
else:
return HttpResponse("密码格式为:字母开头,含数字字母下划线,长度大于8且小于16") # 确认密码
def pwd_check2(request):
pwd1 = request.GET.get("pwd1")
pwd2 = request.GET.get("pwd2")
print(pwd1, pwd2)
print(pwd1 == pwd2)
if pwd1 == pwd2:
return HttpResponse(False)
else:
return HttpResponse("两次输入密码不一致!")
代码的逻辑适合小白看(比较臃肿),求大神多多指点!
AJAX的简单示例:注册校验的更多相关文章
- AJAX实现简单的注册页面异步请求
p { margin: 0px; padding: 0px } AJAX简介 (1)AJAX = 异步 JavaScript 和 XML. (2)AJAX 是一种用于创建快速动态网页的技术. (3)通 ...
- 转贴:JavaScript实现Ajax请求简单示例
转至:https://my.oschina.net/u/658145/blog/167651 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 ...
- Spring MVC 文件上传简单示例(form、ajax方式 )
1.Form Upload SpringMVC 中,文件的上传是通过 MultipartResolver 实现的,所以要实现上传,只要注册相应的 MultipartResolver 即可. Multi ...
- 关于Ajax实现的简单示例
一.代码示例 关于Ajax的基本概念(包括XMLHttpRequest对象及其相关方法属性)移步这里(w3school中文版)学习了解. <!doctype html> <html ...
- Net Core Identity 身份验证:注册、登录和注销 (简单示例)
一.前言 一般我们自己的系统都会用自己设置的一套身份验证授权的代码,这次用net core的identity来完成简单的注册.登录和注销. 二.数据库 首先就是创建上下文,我这里简单的建了Users和 ...
- php+jquery+ajax+json简单小例子
直接贴代码: <html> <title>php+jquery+ajax+json简单小例子</title> <?php header("Conte ...
- Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...
- [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 异常汇总:http://www ...
随机推荐
- linux 系统下安装多个php版本
思路: 下载不同的php源码包,解压后安装在不同的目录下,修改php-fpm监听的端口号 php安装配置参数: ./configure --prefix=/usr/local/php71 --exec ...
- 使用VSCode调试Jest
0. 环境 Node版本:8.12.0 操作系统:windows10 1. 配置launch.json { "version": "0.2.0", " ...
- 稠州银行数字化转型:打造银行数据大脑,建立全新数字化DNA
数字经济时代,银行如何进行数字化转型?业务模式转型与科技转型如何协同并进? 2019年1月4日,在上海蚂蚁金服ATEC城市峰会上,浙江稠州商业银行(以下简称“稠州银行”)副行长兼首席信息官程杰分享了稠 ...
- 【Core】当前 .NET SDK 不支持将 .NET Core 2.2 设置为目标。请将 .NET Core 2.1 或更低版本设置
问题起因: 新的电脑,打开core2.2的项目时,因为没有安装2.2 sdk,项目编译失败 所以在选择目标框架下拉框选择安装其他目标框架 会跳转到官网下载sdk:https://dotnet.micr ...
- MAVEN中的Scope
Dependency Scope 在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用6个值: *im ...
- flex:1详解(转)
转载自:https://blog.csdn.net/fengyjch/article/details/79047908 flex 是 flex-grow.flex-shrink.flex-basis的 ...
- 记录几个字符串转html的帮助类,已防忘记
html的帮助类 /// <summary> /// Represents a HTML helper /// </summary> public partial class ...
- 百度AI开放平台 情感倾向分析实例以及gbk编码解决
f=open('test.txt','a+',encoding='utf-8') for index,row in cxzg.iterrows(): text=str(row['text']) tex ...
- python高级编程
2,python一切皆对象 type,object,class的关系 python常见的内置类型 3,魔法函数 魔法函数 4,深入类和对象 python鸭子类型(多态)抽象基类(abc模块) pyth ...
- QT-简易视频播放器
一直没找到理由去学一下QT,由于工作原因之后的工作内容会用到QT,于是这两天摸索了下:早上临时决定先做个视频播放器玩一下,于是先用qml发现不会用,无果,于是放弃了使用qml,等之后系统的看一下Jav ...