Jquery $ .post数组(再次......)

时间:2010-10-06 01:39:02

标签: jquery arrays post

所以,有点标准的情况:

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());返回空字符串。我做错了什么?

2 个答案:

答案 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>标签本身进行序列化

crazy demo