2010-03-08 65 views

回答

29

你可以看看的serializeArray功能:

$('#form_id').serializeArray() 
+0

非常方便,感谢您对本宝石! – 2013-04-22 17:09:39

76

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

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

(我得检查一遍,看看有什么jQuery不会与阵列,我认为它编码它们作为Javascript数组值,但我m不是100%肯定。)

编辑啊不,它没有设置多值参数作为数组 - 你得到重复的同名。因此,化妆的对象的代码应该是这样的:

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; 
    } 
}); 

(或类似的东西,很可能被挤出一点点)

+2

替代方法:http://github.com/macek/jquery-serialize-object – younes0 2014-02-27 09:15:22

相关问题