2010-06-23 13 views
5

Voglio serializzare e non serializzare un modulo con jQuery.jQuery serialize e unserialize

Come posso ottenere tutti gli attributi di tutti gli elementi in modo serializzato?

risposta

1

jQuery ha una funzione serialize.

$("#form").serialize(); // Returns serialized string 

Riferimento:. http://api.jquery.com/serialize/

+9

che dire di unserialize? –

+0

@PabloPazos Vedi [questo link] (https://gist.github.com/rcmachado/242617) – ako

1

Tutti gli elementi del modulo sarà inviato lungo se si utilizza il $ ('forma') serialize();

15

.serialize() sarà mappare i controlli di input che hanno un nome attributo definito in una stringa di query standard:

foo=bar&bar=foo&and=soon 

Questo tipo di stringa è facile accessibile in quasi ogni "backend" linguaggio di programmazione.

Se è necessario serializzare le informazioni sugli oggetti, utilizzare JSON.

var obj = { 
    foo: 'bar', 
    more: 'etc 
}; 

serializzare con window.JSON.stringify(obj);. Per annullare la serializzazione di una stringa JSON, utilizzare window.JSON.parse(str);, che restituisce un oggetto javascript.

Molte lingue supportano questo principio.

+1

Ciao, perché jquery usa l'attributo name per serializzare un form (invece di usare l'attributo id?) – frabiacca

+0

@frabiacca perché quello è come funzionano HTTP POST e HTTP GET. Usano il nome per il nome della variabile e il valore per il valore della variabile. Nome coppie di valori. Nome = valore & varnam = varval e custvar = custval ... ecc. – SgtPooki

+0

Questa dovrebbe essere la risposta accettata. –