2010-03-08 7 views

Antwort

29

Sie können einen Blick auf die serializeArray Funktion übernehmen:

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

sehr praktisch, danke für dieses Juwel! –

76

Haben Sie versucht, "serializeArray"? Das gibt Ihnen eine Reihe von Namen und Werten. Sie könnten, dass in ein Objekt drehen, wenn Sie wollte:

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

(Ich werde wieder überprüfen, um zu sehen, was jQuery mit Arrays tut, ich glaube, es sie als Javascript-Array-Werte codiert, aber ich m nicht 100% sicher.)

bearbeiten ah nein, es stellt keine mehrwertigen Parameter als Arrays - Sie erhalten Wiederholungen mit dem gleichen Namen. Somit sollte das Make-an-Objekt-Code wie folgt aussehen:

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

(. Oder so ähnlich, wahrscheinlich ein wenig gequetscht werden könnte)

+2

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

Verwandte Themen