django-Query Ajax 实例 ($.ajax、$.post、$.get)

 Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了。

推荐一篇不错的jQuery Ajax 实例文章,忘记了可以去看看,地址为:http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html 和 http://www.w3school.com.cn/jquery/

$.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()

一、$.ajax的一般格式

$.ajax({

     type: 'POST',

     url: url ,

    data: data ,

    success: success ,

    dataType: dataType

});

二、$.ajax的参数描述

参数 描述

url 必需。规定把请求发送到哪个 URL。
data 可选。映射或字符串值。规定连同请求发送到服务器的数据。
success(data, textStatus, jqXHR) 可选。请求成功时执行的回调函数。
dataType

可选。规定预期的服务器响应的数据类型。

默认执行智能判断(xml、json、script 或 html)。

三、$.ajax需要注意的一些地方:

  1.data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;通过dataType指定,不指定智能判断。

  2.$.ajax只提交form以文本方式,如果异步提交包含<file>上传是传过不过去,需要使用jquery.form.js的$.ajaxSubmit

实例:注册账号时用户名不能重复

 1 <div class="right">
 2 
 3              <h1>添加用户</h1>
 4 
 5                 <form action="/user_add/" method="post" onsubmit="return check_form()">
 6                     {% csrf_token %}
 7                     <ul>
 8                         <li>
 9                                 <label for="username">用户名</label>
10                                 <input type="text" id="username" name="username" value="" onblur="check_username(this)" required>
11                                 <span class="user_error"></span>
12                          </li>
13                         <li>
14                                 <label for="password">密码</label>
15                                 <input type="password" id="password" name="password" value="" required>
16                         </li>
17                           <li>
18                                 <label for="repassword">确认密码</label>
19                                 <input type="password" id="repassword" name="repassword" value="" required>
20                         </li>
21                         <li>
22                             <input type="submit" value="提交"/><span id="error"></span>
23                         </li>
24                    </ul>
25                 </form>
26 
27     </div>
28 
29  </div>
30 <script>
31  function check_username(obj){
32      var url='/check_username/';//请求地址
33      var username =$(obj).val();
34      var data ={'username':username}//地址携带的参数
35      $.ajax({
36          type:'get',
37          url:url,
38          data:data,
39          success:function(mydata){
40              //当返回结果不为空时,账号已存在
41             if(mydata != ''){
42                 $(obj).css('border','1px solid red');
43                 $('#error').html('*账号已存在!')
44             }
45             else{
46                 $(obj).css('border','1px solid black');
47                 $('#error').html('')
48             }
49          }
50 
51      });
52  }
53     function check_form(){
54       //分别取得两次输入的密码:
55       pwd=$('#password').val();
56       repwd=$('#repassword').val();
57       error=$('#error').html()
58       if(pwd == repwd){
59           //判断错误信息
60           if(error == ''){
61               //当错误信息不存在时
62               return true;
63           }else{
64               //当错误信息存在时
65               return false;
66           }
67 
68       }else{
69           $('#error').html('两次密码不相同!')
70           return false;
71 
72       }
73 
74 
75 
76     }
77 </script>
html页面代码
1 url(r'^check_username/$', views.check_username),
urls路由
 1 def check_username(request):
 2     #取得参数
 3     username=request.GET.get('username')
 4     check=models.user.objects.filter(username=username)
 5     if check:
 6          #返回字符串
 7         return HttpResponse('账号已存在')
 8 
 9     else:
10         return HttpResponse('')
views视图
原文地址:https://www.cnblogs.com/wu-chao/p/8320036.html