如何使用js或jquery序列化多个id的多个表单

时间:2017-05-02 15:58:21

标签: javascript jquery

我想序列化通过引用传递多个id的表单 我有类似的东西。

<code>
    keys = ['someref1','someref2',....,'someref99];
    data_serializes = $("#data-"+keys.join(",#data")).serialize();
</code>

您可以看到我的表单ID以&#34;数据开头 - &#34;补码必须是我阵中的关键 但它没有用。
任何想法?
感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用$.each并序列化每个表单,使用jQuery选择器插值:

$('#serialize').click(function(e) {
  e.preventDefault();
  let ids = ['first', 'second']
  $.each(ids, function(index, value) {
    console.log($(`#${value}`).serialize())
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="first">
  <input type="text" name="firstname">
  <input type="text" name="lastname">
  <input type="submit" value="Send">
</form>
<form id="second">
  <input type="text" name="firstname">
  <input type="text" name="lastname">
  <input type="submit" value="Send">
</form>

<a href="#" id="serialize">Serialize</a>

或者,如果您想以dinamycally方式获取“ids”,然后遍历每个元素并进行序列化,您可以:

$('#serialize').click(function(e) {
  e.preventDefault()
  $.each($('*[id^="data-"]'), function(e) {
    console.log( $(`#${$(this).attr('id')}`).serialize() )
  })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form id="data-first">
  <input type="text" name="firstname">
  <input type="text" name="lastname">
  <input type="submit" value="Send">
</form>
<form id="data-second">
  <input type="text" name="firstname">
  <input type="text" name="lastname">
  <input type="submit" value="Send">
</form>

<a href="#" id="serialize">Serialize</a>