【问题标题】:Customized Serialize form on AJAX POST?AJAX POST 上的自定义序列化表单?
【发布时间】:2014-08-22 03:05:12
【问题描述】:

我想在 AJAX POST 请求中序列化表单数据,并且

$("#formid").serialze() 不适合我。

有什么方法可以让我以更好的格式获得结果。目前 $("#formid").serialze() 给我的结果是

`poststring="csrfmiddlewaretoken=bb9SOkN756QSgTbdJYDTvIz7KYtAdZ4A&colname=SPORT&datatype=VARCHAR2&field_size=20&null_constraint=1&default_val=&colname=HELLO&datatype=VARCHAR2&field_size=20&default_val=&colname=JUDY&datatype=VARCHAR2&field_size=20&default_val=&tablename=&fsize=&preview_flag=`

我希望 POST 请求对象是

{"colname":[HELLO,JUDY,SPORT].......}

将多行表单输入作为数组(如果您知道我的意思)。

我曾想过解析 serialize() 的输出,但它可能有问题,并且可能会因复杂的列数据而中断。

我需要 POST 响应采用我提到的格式

【问题讨论】:

  • 没有内置的...您必须编写自己的自定义序列化程序。但是,如果您展示您正在使用的标记以及您自己尝试过的内容的最小示例,您会得到更好的响应。如果您知道您所追求的名称(例如colname),那么<form>.getElementsByName('colname') 将为您提供一个可以从其开始的类似数组的节点列表。用你想要的数据创建一个对象,然后JSON.stringify那个。

标签: javascript ajax json django post


【解决方案1】:

我猜你想建立一个对象有一些键,而每个键都有一个数组作为值? serialze() 无法解决您的问题,您可能需要编写一个新函数。


您可以为表单的每个输入设置类,例如 class="colname" class="dataType",并且您需要使用 $('.someClass').each() 或其他方法来检查您的输入和使用 array.push() 构建一个数组。最后使用一些数组来构建一个你想要的新对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多