将输入收集到JSON中

时间:2013-10-14 10:18:44

标签: javascript jquery json

使用此回答How to get all child inputs of a div element (jQuery)我获取特定<div>内的所有输入。

我还想通过ajax发送输入,输入的数量不是固定的,所以不是手动将每个输入放入要发送的json数据中,我想使用each() - 这里有点我不知道 - 将每个 namevalue附加到json。

$('#mydiv :input').each(function(k, v) {
    postData += [{ $(v).attr("name"): $(v).val() }]; 
}

$.post("url.htm", postData, function( data ) { /***/ });

这里面必定有一个小错误,但我无法弄明白。

2 个答案:

答案 0 :(得分:1)

看起来serializeArray功能就是您所需要的:

$.post("url.htm", $('#mydiv :input').serializeArray(), function( data ) { /***/ });

答案 1 :(得分:0)

既然你想发送postdata,请先尝试制作一个数组,然后你需要这样做

var postData=[];

('#mydiv :input').each(function(k, v) {
    postData.push({ $(v).attr("name"): $(v).val() }); 
}

$.post("url.htm", postData, function( data ) { /***/ });

请注意,在进行POST调用时,如果预期响应为JSON,请将第4个参数指定为“json”。