来自不是表单的元素的jQuery serialize / serializeArray

时间:2012-03-06 17:49:54

标签: jquery

关于这是否可行,我还没有找到具体的答案,但似乎应该是......

我想序列化div中包含的所有输入元素。我不能使用表单,因为它将嵌套在另一个表单中。然后我会获取值并通过ajax发布它们。

这是我正在玩的jsFiddle示例:

http://jsfiddle.net/9uyz5/

如果我将root更改为a,它按预期工作。

感谢您的帮助。

我从另一个问题修改了jsfiddle:

https://stackoverflow.com/a/1186309/25020

4 个答案:

答案 0 :(得分:55)

您需要序列化容器内的所有输入,而不是实际的容器本身。这样:

$('div :input').serialize()

答案 1 :(得分:8)

试试这个,以获得所有。

$('#divID *').serialize()

答案 2 :(得分:4)

这也适用于

$('div :input').serializeArray()

:)

答案 3 :(得分:3)

为了使用按钮序列化div的内容,这将是更有效的方式,因为它不会遍历整个dom。

$(this).closest('div').find("input,select").serialize();

请务必将此附加到按钮事件中,并确保在按钮中包含event.preventdefault,以便在div位于其中时不提交主表单。