41 votes

Formulaire de désérialisation jQuery

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 ?

62voto

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.

30voto

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

5voto

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X