Ajax简单运用(JavaScript-----jQuery-------)
首先引用 jQuery
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.4.1.min.js"></script>
写一个简单的表单

<form id="f1" method="POST" action="/form_login/">
{% csrf_token %}
<p>用户:<input id="title_1" type="text" name="username"/></p>
<p>密码:<input type="password" name="password"/></p>
<p><input type="submit" name="提交">{{message}}</p>
<a onclick="abc()">提交</a> {# 点击链接到JavaScript函数 #}
</form>
相关视图函数

1 from django.forms import Form,fields,widgets
2 class FormLogin(Form):
3
4 username=fields.CharField(min_length=6,max_length=18,required=True,
5 error_messages={
6 'required':'用户名不能为空',
7 'min_length':'最小长度为6',
8 'max_length':'最大长度18',
9 }
10 )
11 #里面就包含了正则验证:不能为空、6-18
12 #这个要html里面的name属性一样
13 #写几个就验证几个规则
14 password = fields.CharField(min_length=6, max_length=18, required=True,
15 error_messages={
16 'required': '密码不能为空',
17 'min_length': '最小长度为6',
18 'max_length': '最大长度18',
19 }
20 )
21 # t1 = fields.IntegerField # 数字正则表达式
22 # t2 = fields.EmailField() # 邮箱正则表达式
23 # email=fields.GenericIPAddressField() #IP正则表达式

def form_login_ajax(request):
import json
ret={'status':True, 'msg':None} #有个状态,方便后面判断
obj = FormLogin(request.POST)
if obj.is_valid(): # 去匹配
print(obj.cleaned_data) # 正确的信息
#return redirect('http://www.baidu.com')
else:
print(obj.errors) # v=json.dumps(obj.errors,ensure_ascii=False)#通过json 对它序列化
# print(v)
ret['status']=False
ret['msg']=obj.errors #obj.errors是个字典
v=json.dumps(ret,ensure_ascii=False) #为了能打印出来
print(v)
return HttpResponse(v) #也能返回render(本质还是HttpResponse),但是这里返回这个比较好,弄个json.domp字典返回最好 # return render(request, 'form_login.html', {'obj': obj, 'user': user, 'pwd': pwd})
#完成验证和提示错误,但是无法保留Form表单上次输入内容
发送Ajax请求和接受视图函数返回的数据并且处理

<script>
function abc(){
$('.c1').remove(); //(jQuery 类选择器)
$.ajax(
{
url:'/form_login_ajax/',
type:'POST',
data:$('#f1').serialize(),
dataType:"JSON", //将序列化的json转化为对象
success:function(data){
console.log(data);
console.log(data.status); //status是后台传过来的字典的key
if(data.status){ //若是提交成功的话
alert('提交成功')
$("#f1").hide();//皮一下,输入成功后,输入框消失(jQuery id选择器)
}else{
$.each(data.msg,function(index,value){ //对data.msg进行循环
console.log(index,value); //取其index(key),value
var tag=document.createElement('span'); //创建一个名为tag的span标签
tag.innerHTML=value[0]; //取value第一个值
console.log(value[0]);
console.log(tag);
tag.className='c1'; //给标签加一个样式 目的:等到下次来的时候给它删除(避免累加提示错误)
$('#f1').find('input[name="'+index+'"]').after(tag); //input[name=" user "]' ,不能有多余的空格
//找到id为f1的表格,下面找到input name=x,加入tag标签
})
}
}
})
}
</script>
ps:
问题待补充:
jQuery 三大选择器 除了能 .remove() .hide() 还能.什么,哪里可以查到相关的全部
Ajax简单运用(JavaScript-----jQuery-------)的更多相关文章
- Jquery Ajax简单封装(集中错误、请求loading处理)
Jquery Ajax简单封装(集中错误.请求loading处理) 对Jquery Ajax做了简单封装,错误处理,请求loading等,运用到项目中集中处理会很方便. 技术层面没有什么好说的,请求是 ...
- 前端(十七)—— jQuery基础:jQuery的基本使用、JQ功能概括、JS对象与JQ对象转换、Ajax简单应用、轮播图
jQuery的基本使用.JQ功能概括.JS对象与JQ对象转换.Ajax简单应用.轮播图 一.认识jQuery 1.什么是jQuery jQuery是对原生JavaScript二次封装的工具函数集合 j ...
- jquery ajax post, get, javascript ajax post, get 处理
ajax 创建 XMLHttp 对象IE7 以上的版本都支持 XMLHttpRequestIE7 以下的用 ActiveXObject async:true, // 当false 时,当执行完这个才 ...
- javascript AJAX简单原理及什么是ajax
AJAX简单原理供初学者理解 AJAX的原理: Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其 ...
- 经验分享:10个简单实用的 jQuery 代码片段
尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...
- 原生态AJAX详解和jquery对AJAX的封装
AJAX: A :Asynchronous [eI`sinkrenes] 异步 J :JavaScript JavaScript脚本语言 A: And X :XML 可扩展标记语言 AJAX现在 ...
- ajax请求原理及jquery $.ajax封装全解析
.ajax原理: Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其中最关键的一步就是从服务器获得 ...
- 第18天 ajax技术和javascript加强(json)
第18天 ajax技术和javascript加强(json) 复习: B/S架构实现文件上传的思路? 使用a标签实现文件下载功能,有什么问题? 使用Servlet实现文件下载的思路? 今日任务 ...
- ajax简单手写了一个猜拳游戏
使用ajax简单写一个猜拳游戏 HTML代码 <!DOCTYPE HTML> <html lang="en-US"> <head> <me ...
- Handlebars的基本用法 Handlebars.js使用介绍 http://handlebarsjs.com/ Handlebars.js 模板引擎 javascript/jquery模板引擎——Handlebars初体验 handlebars.js 入门(1) 作为一名前端的你,必须掌握的模板引擎:Handlebars 前端数据模板handlebars与jquery整
Handlebars的基本用法 使用Handlebars,你可以轻松创建语义化模板,Mustache模板和Handlebars是兼容的,所以你可以将Mustache导入Handlebars以使用 Ha ...
随机推荐
- 有序全排列c++实现(递归)
1 #include <iostream> 2 #include <algorithm> 3 #include <iterator> 4 #include < ...
- OpenSSL实现了5种信息摘要算法有哪些?
OpenSSL实现了5种信息摘要算法,分别是MD2.MD5.MDC2.SHA(SHA1)和RIPEMD.SHA算法事实上包括了SHA和SHA1两种信息摘要算法.此外,OpenSSL还实现了DSS标准中 ...
- RabbitMQ 的集群?
镜像集群模式 你创建的 queue,无论元数据还是 queue 里的消息都会存在于多个实例上,然后 每次你写消息到 queue 的时候,都会自动把消息到多个实例的 queue 里进行消息 同步. 好处 ...
- oracle.i18n.text.convert.CharacterConverterOGS.getInstance(I)Loracle/i18n/text/converter/CharacterConver;
看看项目是不是同时包含ojdbc系列jar包和nls_charset12.jar包.如果同时包含,则删除nls_charset12.jar.因为低版本的nls_charset12和ojdbc包冲突.
- Java 中的 ReadWriteLock 是什么?
读写锁是用来提升并发程序性能的锁分离技术的成果.
- 学习zabbix(八)
一,Zabbix架构 zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制 ...
- python学习笔记(八)——文件操作
在 windows 系统下,我们通过 路径+文件名+扩展名的方式唯一标识一个文件,而在 Linux 系统下通过 路径+文件名唯一标识一个文件. 文件分类:文件主要可以分为文本文件和二进制文件,常见的如 ...
- 单例模式 | C++ | Singleton模式
Singleton 模式 单例模式(Singleton Pattern)是 C++/Java等语言中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式实 ...
- js压缩图片到2m以下
用的canvas.这个问题测试妹子反馈了好几次bug,解决了好多次,虽然用了比较僵硬的办法,但总算最终解决了. 因为php的同事说,页面上的图片要直接调用七牛的接口上传到七牛,所以后端那边不能处理,必 ...
- 谈谈我认识的js原型
众所周知,JavaScript中是没有传统类的概念的,js通过原型链的方式实现继承.原型是js学习中的一大重点知识,在ES6出来之前,因为js不像php.java一样拥有类的写法,所以继承方式也就不像 ...