我想序列化通过引用传递多个id的表单 我有类似的东西。
<code>
keys = ['someref1','someref2',....,'someref99];
data_serializes = $("#data-"+keys.join(",#data")).serialize();
</code>
您可以看到我的表单ID以&#34;数据开头 - &#34;补码必须是我阵中的关键
但它没有用。
任何想法?
感谢。
答案 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>