2014-12-01 76 views
-2

我在另一个表单元素内有一个表单,但是当我尝试序列化嵌套表单时,函数只是返回一个空对象。我问这是因为我编写的是一个Wordpress插件,我需要在后期编辑器页面中添加一个表单,并且我在页面中放置的所有内容似乎都会添加到父表单中,所以这里是我想要的一个例子:jQuery序列化嵌套表格

JS Fiddle

<form> 
<div>Other content goes here...</div> 
<form id="otroform"><input type="text" value="meine valor" name="variable"/></form> 
</form> 

这是JS代码

var formData = jQuery('#otroform').serializeArray(); 
console.log(formData); 

返回:

[] 

如果我删除父窗体,那么它将正常工作。

在此先感谢。

+1

HTML禁止嵌套窗体。首先不要创建它们。 – Quentin 2014-12-01 19:09:59

回答

0

改变你的代码有外在形式使用它的工作ID:

<form id="otroform"> 
    <div>Other content goes here...</div> 
    <form id=""><input type="text" value="meine valor" name="variable"/></form> 
</form> 

这是因为,你不能有嵌套形式的问题。

的jsfiddle:http://jsfiddle.net/xdydtset/1/

1

serializeArray()不需要的形式。所以,你可以通过收集不同类别的输入来避免内部形式。

例如:

HTML:

<form> 
<div>Other content goes here...</div> 
<form id="otroform"><input type="text" class="otroform" value="meine valor" name="variable"/></form> 
</form> 

的javascript:

var formData = jQuery('.otroform').serializeArray(); 
console.log(formData); 

http://jsfiddle.net/bz5ddf1L/

看到.serializeArray()文档: http://api.jquery.com/serializearray/