jquery

2010-03-08 12 views
50

içinde nesne olarak form verileri alma nasıl jQuery('#form_id').serialize() denedim. Bu, yalnızca URL'yi kodlanmış bir dize olarak form verilerini döndürür. Form verisini nesne olarak almak mümkün mü?jquery

$('#form_id').serializeArray() 

cevap

29

Sen serializeArray fonksiyonuna bir göz sürebilir? Bu size bir dizi isim ve değer verir. İsterseniz bir nesne içine dönüşebilir için:

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

(jQuery diziler ne yaptığını görmek için tekrar kontrol etmek gerekir; bunu JavaScript dizi değerleri olarak onları kodlayan düşünmek ama ben m% 100 emin değil.)

düzenleme ah no, çok değerli parametreleri diziler olarak ayarlamaz - aynı isimde tekrarlar alırsınız. Böylece, marka-an-nesne kodu aşağıdaki gibi görünmelidir:

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

(. Ya da böyle bir şey; muhtemelen biraz sıkılmış olabilir)

+0

çok kullanışlı, bu taş için teşekkür ederim! –

76

siz "serializeArray" denediniz:

+2

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