J'utilise jQuery Serialize pour sérialiser mes éléments de formulaire et j'aimerais les désérialiser à nouveau. Malheureusement, je ne trouve aucun désérialiseur jQuery fonctionnel, des suggestions ?
Réponses
Trop de publicités?
kflorence
Points
752
J'ai écrit une version de jQuery.deserialize qui prend en charge les données sérialisées générées à partir des fonctions serialize, serializeArray et serializeObject. Il prend également en charge tous les types d'éléments de formulaire, y compris les cases à cocher et les boutons radio.
Jack Allan
Points
2142
Essaye ça:
function deparam(query) {
var pairs, i, keyValuePair, key, value, map = {};
// remove leading question mark if its there
if (query.slice(0, 1) === '?') {
query = query.slice(1);
}
if (query !== '') {
pairs = query.split('&');
for (i = 0; i < pairs.length; i += 1) {
keyValuePair = pairs[i].split('=');
key = decodeURIComponent(keyValuePair[0]);
value = (keyValuePair.length > 1) ? decodeURIComponent(keyValuePair[1]) : undefined;
map[key] = value;
}
}
return map;
}
user3204597
Points
83
Un peu tard sur celui-ci, mais quelqu'un pourrait trouver cela utile.
function fetchInput(identifier) {
var form_data = identifier.serialize().split('&');
var input = {};
$.each(form_data, function(key, value) {
var data = value.split('=');
input[data[0]] = decodeURIComponent(data[1]);
});
return input;
}