所以,有点标准的情况:
OK, so replacing <div> with <form> works. Now to see if any nesting issues occur...
<div id=hidden>
<input type=hidden value=2 id=i1 name=i1>
<input type=hidden value=5 id=i2 name=i2>
<input type=hidden value=6 id=i3 name=i3>
<input type=hidden value=1 id=i4 name=i4>
<input type=hidden value=10 id=i5 name=i5>
</div>
我需要通过POST提交这些数据。但是alert ($('#hidden').serialize());
返回空字符串。我做错了什么?
答案 0 :(得分:4)
由于它是.elements
使用的,因此您只能.serialize()
<form>
,因此请将<div>
更改为<form>
,这样才能正常工作。< / p>
例如,here's the <div>
version(不工作)和the <form>
version(工作)。
顺便说一句,请确保将您的属性用引号括起来,如下所示:
<form id="hidden">
<input type="hidden" value="2" id="i1" name="i1">
<input type="hidden" value="5" id="i2" name="i2">
<input type="hidden" value="6" id="i3" name="i3">
<input type="hidden" value="1" id="i4" name="i4">
<input type="hidden" value="10" id="i5" name="i5">
</form>
另一种方法是将.serialize()
分解为its parts,如下所示:
alert($.param($('#hidden :input').serializeArray()));
//or
alert($('#hidden :input').serialize());
Check out that version here(请注意,它适用于<div>
)。
答案 1 :(得分:1)
尝试
alert($('#hidden input').serialize()); // this will serialize all input element.
如果您想Selects all input, textarea, select and button elements
,请使用:input
来自文档,
.serialize()
方法可以对选择了单个表单元素的jQuery对象起作用,例如<input>
,<textarea>
和<select>
。 但是,通常更容易选择<form>
标签本身进行序列化