如何使用最小的jQuery Ajax实现Django表单[问题级别 - 中级]

时间:2011-03-19 07:29:54

标签: jquery ajax django forms integration

如果你要用一些简约的东西替换标记[从这里 - 到这里]的代码是什么?

$('#post_form').submit(function(event){

            event.preventDefault();
            var data = {}

            // From here
           data.k = $('#k').val(); //'k' would be the id of some input field
            data.j = $('#j').val(); //and so on for 'l', 'm' , 'n' etc. you get it
            .......
            // Till here

            $.post("/ajax/post_test/", 
                data, 
                function(responseData) {
                  // handle the response
                },
                "json"

            );
        });

如果这个“数据”对象可以直接在Django中用作表单,那将是非常棒的,因此能够利用Django的内置验证系统。

理想的答案看起来像这样 -

data = $('#post_form').DumpData()

如果有人今天感觉很亲切,你还可以告诉我如何处理这些反应吗?我真的很感激。感谢你们。

P.S。拯救我的灵魂。

1 个答案:

答案 0 :(得分:1)

您正在寻找serialize方法:

  

.serialize()方法以标准URL编码表示法创建文本字符串。它在表示一组表单元素的jQuery对象上运行。

所以它没有给你一个对象,但它作为jQuery AJAX调用的数据参数。

如果你真的想要它们作为一个对象,那就是serializeArray,它并不完全存在,因为它是一个带有名称和值的对象数组,但你可以把它变成一个单级对象。