您好我正在尝试选择页面中的所有表单,然后序列化他们的输入值,我使用以下代码:
function serializeAllFormData() {
var serializedData;
$("#form").each(
function() {
serializedData = serializedData
+ $(this).serialize();
});
return serializedData;
}
但是当我检查serializedData时,它是未定义的,我做错了什么?
答案 0 :(得分:10)
您正在选择表单,就好像它们是ID #form
一样(只有在选择ID时才使用哈希符号#
)。请尝试使用form
代替。
$("form").each(function() {
serializedData = serializedData + $(this).serialize();
});
<强>更新强>
根据the documentation,每个函数可以采用第一个参数(indexInArray)。所以你可以这样做:
var forms = $("form");
forms.each(function(i) {
serializedData = serializedData + $(this).serialize();
// i will start a 0, therefor forms.length - 1 in the if-statement
if (i === forms.length - 1) {
// Do something on the last element
}
});
我将表单缓存在变量中,这样我们就不必在每次循环运行时都通过DOM。
答案 1 :(得分:0)
由
修复function serializeAllFormData() {
var serializedData;
var forms = $('#content').find('form');
$(forms).each(
function() {
serializedData = serializedData
+ $(this).serialize();
});
alert(serializedData);
return serializedData;
}