使用jquery序列化表单输入

时间:2011-08-30 12:49:18

标签: jquery html-form

我有一个包含许多隐藏div的表单和一个用于显示单个div的选项。

但是,当向服务器提交数据时,会发送所有数据并丢失一些值(不同div中具有相同名称的字段)。

这是一个场景示例:

<form>
  <select>
    <option value="ga">GA</option>
    <option value="om">OM</option>
  </select>

  <div class="ga">
   <input type="text" name="a_field" />
   <input type="text" name="a_field_2" />
   ...code
  </div>

  <div class="om">
   <input type="text" name="a_field_2" />
   <input type="text" name="a_field_100" />
   ...code
  </div>

</form>

如何仅序列化我想要的div?

我的第一种方法是从ajaxForm中删除beforeSerialize方法中隐藏的div,但现在我需要在点击其他链接时序列化值以进行另一次调用(而不是提交表单)。

提前致谢

1 个答案:

答案 0 :(得分:1)

你可以手动完成:

var serial = new Array();
var i = 0;
$('.om input').each( function(){
    serial[i++] = $(this).attr('name')[0]+'='+$(this).html()[0];
});
serial.join('&');