【问题标题】:Gather inputs into JSON将输入收集到 JSON
【发布时间】:2013-10-21 21:21:28
【问题描述】:

使用此答案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 ) { /***/ });

这里面一定有一个小错误,但我想不通。

【问题讨论】:

  • 在您的情况下postData 的类型是什么?
  • @Sniffer postData 是 jQuery 使用的 JSON

标签: javascript jquery json


【解决方案1】:

既然要发送postdata,那就先尝试做一个数组,然后你需要这样做

var postData=[];

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

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

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

【讨论】:

    【解决方案2】:

    看起来serializeArray 函数正是您所需要的:

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

    【讨论】:

      猜你喜欢
      • 2016-10-24
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 2015-08-02
      • 2019-12-25
      相关资源
      最近更新 更多