2010-03-08 14 views

risposta

29

Si può prendere uno sguardo alla funzione di serializeArray:

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

molto utile, grazie per questo gioiello! Alternativa –

76

Hai provato "serializeArray"? Questo ti dà una serie di nomi e valori. Si potrebbe trasformarla in un oggetto se si voleva:

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

(dovrò controllare di nuovo per vedere cosa jQuery fa con gli array, io penso li codifica come valori array JavaScript, ma io' . m non sicuro al 100%)

modifica ah no, non impostare i parametri più valori come array - si ottiene ripete con lo stesso nome. Così, il codice di make-an-oggetto dovrebbe essere simile a questo:

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

(. O qualcosa di simile; probabilmente potrebbe essere spremuto un po ')

+2

: http://github.com/macek/jquery-serialize-object – younes0

Problemi correlati