序列化表单的子集

Serializing a subset of form

本文关键字:子集 表单 序列化      更新时间:2023-09-26

我有一个嵌入另一个表单的表单:

<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()结果为空字符串。

您不是在嵌入另一个表单,您是在嵌入div

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

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

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

我还没有测试过,但是你可以试试:

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