序列化表单的子集

时间:2011-12-13 10:45:15

标签: javascript jquery

我有一个嵌入另一种形式的表单:

<form>
  <input type="text" name="main[name]">
  <textarea name="main[body]"></textarea>
  <div id="embedded">
    <input type="text" name="main[embedded][name]">
    <textarea name="main[embedded][body]"></textarea>
  </div>
</form>

我只需要序列化嵌入的表单。

$('#embedded').serialize()会产生空字符串。

2 个答案:

答案 0 :(得分:6)

您没有嵌入其他表单,而是嵌入了div

serialize()方法只能在form元素或form元素本身上调用。

var serialized = $('#embedded').find(':input').serialize();
  

.serialize()方法可以对选择了单个表单元素的jQuery对象起作用,例如<input><textarea><select>。但是,通常更容易选择<form>标记本身进行序列化:

答案 1 :(得分:1)

我没有测试过这个,但你可以试试:

$("<form/>").html($('#embedded').clone()).serialize()