fanne
V2EX  ›  Django

django form ajax post 问题请教

  •  
  •   fanne · Nov 16, 2017 · 3968 views
    This topic created in 3172 days ago, the information mentioned may be changed or developed.

    版本说明:

    python 2.7
    django 1.11
    jquery 2.11
    
    
    Html 内容:

    js 内容

    views.py 内容

    前端展示

    表单提交后,无论成功失败,都调到这个内容

    这是为何的? 不是停留在原始页面

    而且 ajax 中的alert也没有弹窗。

    8 replies    2017-11-17 09:21:48 +08:00
    RudyC
        1
    RudyC  
       Nov 16, 2017
    type=submit
    fanne
        2
    fanne  
    OP
       Nov 16, 2017
    @RudyC #1 不明,不能使用 submit 类型?
    manzhiyong
        3
    manzhiyong  
       Nov 16, 2017
    .onclick(function(ev) {
    加个参数 ev,下面再加一行:
    ev.preventDefault();
    fanne
        4
    fanne  
    OP
       Nov 16, 2017
    @manzhiyong #3 这个事件添加后,也没啥效果
    Kokororin
        5
    Kokororin  
       Nov 16, 2017
    jQuery 有 onclick ??
    awanabe
        6
    awanabe  
       Nov 16, 2017
    type=submit 的 按钮会触发 提交时间..
    而你是想要异步提交, 和 form 本身的提交冲突的.

    # 1. 先禁掉自动提交
    $('#jsStayForm').submit(function(){
    return false;
    })

    # 2. 把 button 的 type=submit 去掉
    # 3. jquery 里面 是 .click(), 不是 onclick
    awanabe
        7
    awanabe  
       Nov 16, 2017
    @awanabe 提交事件

    # ps. 这个和 django 没关系啊... LZ 前端 和 HTTP 的知识要掌握啊
    Dganzh
        8
    Dganzh  
       Nov 17, 2017
    因为返回的都是成功的状态啊,都是 200,你应该在失败的响应中加 400: HttpResponse(....., status_code=400, content_type=.....)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3521 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 10:26 · PVG 18:26 · LAX 03:26 · JFK 06:26
    ♥ Do have faith in what you're doing.