I have tried jQuery('#form_id').serialize(). This returns only the form data as a url encoded string. Is it possible to get the form data as an object?
-
Have you check this : stackoverflow.com/questions/1184624/…Bhavik Hirani– Bhavik Hirani2018-03-26 08:00:52 +00:00Commented Mar 26, 2018 at 8:00
Add a comment
|
2 Answers
Have you tried "serializeArray"? That gives you an array of names and values. You could turn that into an object if you wanted to:
var paramObj = {};
$.each($('#myForm').serializeArray(), function(_, kv) {
paramObj[kv.name] = kv.value;
});
(I'll have to check again to see what jQuery does with arrays; I think it encodes them as Javascript array values, but I'm not 100% sure.)
edit ah no, it doesn't set up multi-valued parameters as arrays - you get repeats of the same name. Thus, the make-an-object code should look like this:
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;
}
});
(or something like that; could probably be squeezed a little.)
1 Comment
younes0
alternative: github.com/macek/jquery-serialize-object
You may take a look at the serializeArray function:
$('#form_id').serializeArray()
1 Comment
XYZ
this returns a serialized array instead of an object.