还是一个简单的html提交页面,ajax提交就不需要form表单了:

     <p><input id="a" type="text" name="ac"></p>
<p><input id="p" type="password" name="pwd"></p>
<p><input id="e" type="eMail" name="e"></p>
<p><input id="s" type="submit" value="Ajax提交"></p>

因为是ajax提交,所有就不必考虑刷新保留数据等问题,在js中直接发送数据,获取,然后动态添加就可以了:

 <script>
$(function () {
handle_submit()
}) function handle_submit() {
$("#s").click(function () {
    //ajax提交
$.ajax({
url:"/fff/Ajax",
data:{"user":$("#a").val(),"pwd":$("#p").val(),"eMail":$("#e").val()},//获取input值
type:"POST",
dataType:"json",
success:function (ret) {
//返回的ret是这种格式: //{"status": false, "error": {"ac": [{"code": "required", "message": "\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a"}], "pwd": [{"code": "required", "message": "\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a"}], "eMail": [{"code": "required", "message": "\u7528\u6237\u540d\u957f\u5ea6\u4e0d\u80fd\u4e3a\u7a7a"}]}, "data": "null"}
$(".errorMsg").remove()//每次提交之前先把数据span清除
if (!ret.status){
//循环处理数据,动态生产成span标签
$.each(ret.error,function (k,v) { var mes=document.createElement("span")
mes.className="errorMsg"
mes.innerHTML=v[0].message
$("input[name='"+k+"']").after(mes)
})
}
}
})
})
}
</script>

后台代码:

 def Ajax(req):
if req.method == "GET":
return render(req, "Ajaxsubmit.html")
elif req.method == "POST":
obj = Formsubmit(req.POST) # 将得到req.POST信息传递给验证类做参数
status = obj.is_valid()# 这里执行后才验证,验证的信息都存储在obj这个类中
#自定义一个返回的数据类型
ret={
"status":True,
"error":"null",
"data":"null"
}
if not status:
ret["status"]=False
error_data=obj.errors.as_data()
ret["error"]=error_data
return HttpResponse(json.dumps(ret,cls=JsonCustomEncode)) from django.core.exceptions import ValidationError
#查看ValidationError可知道错误数据中包括错误类型code,错误信息message2项,所以转换json的时候返回return {"code":file.code,"message":file.message}
import json
class JsonCustomEncode(json.JSONEncoder):
def default(self,file):
if isinstance(file,ValidationError):
return {"code":file.code,"message":file.message}
else:
return json.JSONEncoder.default(self,file)

Django_Form验证(二),ajax验证的更多相关文章

  1. 11.10 (下午)开课二个月零六天(ajax验证用户名,ajax调数据库)

    用ajax验证用户名是否可用 testuid.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...

  2. ajax验证表单元素规范正确与否 ajax展示加载数据库数据 ajax三级联动

    一.ajax验证表单元素规范正确与否 以用ajax来验证用户名是否被占用为例 1创建表单元素<input type="text" id="t"> 2 ...

  3. tp框架表单验证 及ajax

    之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种 ...

  4. easyui 自定义验证规则 验证用户是否已经存在 远程ajax验证

    easyui远程ajax验证 2014年09月30日 22:29:32 clj198606061111 阅读数:6130 标签: easyui 更多 个人分类: jqueryeasyui 版权声明:本 ...

  5. js进阶 14-2 如何用ajax验证登陆状态(这里用load方法)

    js进阶 14-2 如何用ajax验证登陆状态(这里用load方法) 一.总结 一句话总结:$('#test').load('test.php?password=1234560'),这样就get方式提 ...

  6. ASP.NET MVC Model验证(二)

    ASP.NET MVC Model验证(二) 前言 上篇内容演示了一个简单的Model验证示例,然后在文中提及到Model验证在MVC框架中默认所处的位置在哪?本篇就是来解决这个问题的,并且会描述一下 ...

  7. [LeetCode] Verify Preorder Sequence in Binary Search Tree 验证二叉搜索树的先序序列

    Given an array of numbers, verify whether it is the correct preorder traversal sequence of a binary ...

  8. [LeetCode] Validate Binary Search Tree 验证二叉搜索树

    Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...

  9. Easyui Ajax验证Form表单。。。

        今天做项目用到easyui Ajax验证表单.本想自定义一个easyui的验证,查资料发现easyui 自带了一个通用的验证!见以下下截图. 后台返回值 true验证通过,返回false验证失 ...

随机推荐

  1. springboot笔记1(转载于puresmile)

    构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

  2. Java+opencv实现人脸检测

    版本 Java1.8 opencv3.4 代码: import java.awt.Graphics; import java.awt.image.BufferedImage; import javax ...

  3. springdata笔记

    SpringData整合hibernate CRUD操作: applicationContext.xml: <?xml version="1.0" encoding=&quo ...

  4. laravel 路由分組

    laravel 路由分組 Route::group(['prefix' => 'admin'], function () { $namespacePrefix="\\App\\Http ...

  5. nginx upstream轮询配置

    nginx upstream nginx的upstream官方地址为:http://nginx.org/cn/docs/http/ngx_http_upstream_module.html 轮询分为多 ...

  6. G2( bizCharts ) React 绘制混合图例

    G2( bizCharts ) React 绘制混合图例, // data-set 可以按需引入,除此之外不要引入别的包 import React from 'react'; import { Cha ...

  7. Android批量验证渠道、版本号(Linux版)

    功能:可校验单个或目录下所有apk文件的渠道号.版本号(Linux版本)使用说明:1.copy需要校验的apk文件到VerifyChannelVersion目录下2../VerifyChannelVe ...

  8. 树莓派apt-get The value '\stable' is invalid for APT 错误

    对apt-get进行任何操作都会报错: pi@raspberrypi:~ $ sudo apt-get upgrade Reading package lists... Done E: The val ...

  9. Window10下安装sbt

    参考:https://segmentfault.com/a/1190000002474507 下载:https://dl.bintray.com/sbt/native-packages/sbt/0.1 ...

  10. java的String的乱码浅析

    Java又乱码了,怎么办:乱码了说明编码与解码不一致导致.所以使用统一的编码方式即可. 本文并不是一定能解决乱码,本文主要用来了解jvm默认编码,以及string编码与解码一致性问题. jvm的默认编 ...