• 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视图
  • 相关阅读:
    nginx + keepalived 教程
    mysql 之 获取指定月份天数和指定月份上月天数
    hive 之将sql执行结果输出到文件中
    sql 之 处理一行全为0的记录
    Shell 基础知识
    kettle 调度时出现时区问题,导致数据调出加了8小时
    sql 之按指定分割符取分割符前/后字符串
    Spring Security(二)
    Spring Security(一)
    集成Swagger文档
  • 原文地址:https://www.cnblogs.com/wu-chao/p/8320036.html
Copyright © 2020-2023  润新知