您好,我正在尝试选择页面中的所有表单,然后序列化其输入值,我正在使用以下代码:

function serializeAllFormData() {
                        var serializedData;
                        $("#form").each(
                                function() {
                                    serializedData = serializedData
                                            + $(this).serialize();
                                });
                        return serializedData;
                    }


但是当我检查serializedData时,它是未定义的,我在做什么错?

最佳答案

您选择的表单就好像它们是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。

09-25 20:46