我有一个嵌入另一种形式的表单:
<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()
会产生空字符串。
答案 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()