V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fanne
V2EX  ›  Django

django form ajax post 问题请教

  •  
  •   fanne · 2017-11-16 14:26:23 +08:00 · 3250 次点击
    这是一个创建于 2564 天前的主题,其中的信息可能已经有所发展或是发生改变。

    版本说明:

    python 2.7
    django 1.11
    jquery 2.11
    
    
    Html 内容:

    js 内容

    views.py 内容

    前端展示

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

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

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

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

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

    # 2. 把 button 的 type=submit 去掉
    # 3. jquery 里面 是 .click(), 不是 onclick
    awanabe
        7
    awanabe  
       2017-11-16 17:54:46 +08:00
    @awanabe 提交事件

    # ps. 这个和 django 没关系啊... LZ 前端 和 HTTP 的知识要掌握啊
    Dganzh
        8
    Dganzh  
       2017-11-17 09:21:48 +08:00
    因为返回的都是成功的状态啊,都是 200,你应该在失败的响应中加 400: HttpResponse(....., status_code=400, content_type=.....)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1098 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:56 · PVG 02:56 · LAX 10:56 · JFK 13:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.