如何获取表单数据作为jQuery中的对象

我试过jQuery('#form_id').serialize() 。 这只返回表单数据作为url编码的string。 是否有可能获取表单数据作为一个对象?

你有没有尝试过“serializeArray”? 这给你一个名称和值的数组。 你可以把它变成一个对象,如果你想:

 var paramObj = {}; $.each($('#myForm').serializeArray(), function(_, kv) { paramObj[kv.name] = kv.value; }); 

(我将不得不再次检查jQuery如何处理数组;我认为它将它们编码为Javascript数组值,但我不是100%确定的。)

编辑啊不,它没有设置多值参数作为数组 – 你得到重复相同的名字。 因此,make-an-object代码应该如下所示:

 var paramObj = {}; $.each($('#myForm').serializeArray(), function(_, kv) { if (paramObj.hasOwnProperty(kv.name)) { paramObj[kv.name] = $.makeArray(paramObj[kv.name]); paramObj[kv.name].push(kv.value); } else { paramObj[kv.name] = kv.value; } }); 

(或类似的东西,可能会被挤压一点。)

你可以看看serializeArray函数:

 $('#form_id').serializeArray()