【问题标题】:How to get the formatted POST data of a Django form?如何获取 Django 表单的格式化 POST 数据?
【发布时间】:2011-03-13 14:44:48
【问题描述】:

我有一个 Django ModelForm,但不希望用户点击 reguar 提交按钮。 相反,我制作了自己的提交按钮,并将使用 Ajax/jQuery 发布表单数据。 要发布的数据是表单数据和我在 UI 上收集的其他信息的混合体。 但是...我如何获取 html 表单应该提交的格式化 POST 数据? 如果我能像 JSON 或 jQuery 对象一样得到它,那就更好了!

【问题讨论】:

    标签: jquery django forms post


    【解决方案1】:

    您可以为此使用jQuery.serialize(),然后您可以将其作为jQuery.post() 的第二个参数传递。

    $('#formid').submit(function() {
        $.post('serverUrl', $(this).serialize(), callbackFunction);
        return false;
    });
    

    或者,您也可以为此使用jQuery Form plugin,这会使事情变得更容易。

    【讨论】:

    • 好!但我需要将这个序列化与其他对象混合,如 {param1:1, param2:2} 另一个问题是,当我创建一个
      对象时,每当我调用 $.post() 时,它实际上会发布我的表单,重新加载页面,这不好!
    • 1.好吧,您可以在 post 调用之前将$(this).serialize() 放入一个 javascript 对象中,然后手动向其中添加字段; 2. 真的,没有。 $.post是AJAX提交,return false表示不执行表单的默认提交动作。
    • @Roger,@Daniel 是对的。做类似var data = $(this).serialize(); data.param1 = 1; 的事情。 return false; 应该阻止表单的默认操作。
    • 我错过了return false;,不是它不会提交!我正在发布这样的内容...$.param(myparams) + "&" + $('#form_id').serialize();。谢谢!!
    猜你喜欢
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 2013-10-12
    • 2020-07-16
    • 2012-02-01
    相关资源
    最近更新 更多