2012-03-06 10 views
29

olmayan bir öğeden/serializeArray serialize ama olması gerektiği gibi görünüyor ... Bir div içinde bulunan giriş elemanları. Bir form kullanamam çünkü başka bir formda iç içe geçecekti. Daha sonra değerleri alıp ajax yoluyla gönderirim. Beklediğim gibi çalıştığını a kök değiştirirsenizjQuery Ben bu mümkün olmadığı konusunda somut bir cevap bulamadım form

http://jsfiddle.net/9uyz5/

:

İşte ben oynuyorum jsFiddle örnektir.

Yardımlarınız için teşekkürler.

bu diğer soruya gelen jsfiddle değiştirdik:

https://stackoverflow.com/a/1186309/25020

+0

Sorunuza bir blog yanıtı yazdım. Dom elemanlarının serileştirilmesi. Ayrıca veritabanına eklenecek bir JSON dizesi oluşturma olasılığını da ele aldım: http://onwebdev.blogspot.com/2012/03/jquery-serialize-elements-outside-forms.html –

+0

Olası kopya [jquery sadece bir div içindeki elementleri serileştirmek için] (http://stackoverflow.com/questions/1829519/jquery-to-serialize-only-elements-within-a-div) – showdev

cevap

49

Eğer konteyner değil, esas kaba kendisi içindeki tüm girdileri serialize gerekiyor. böylece:

$('div :input').serialize() 
+0

meraktan, bunun biraz beklenmedik olduğunu düşünüyorum, neden $ ('# myForm'). serialize() çalışır mı? –

+3

Biraz geç biliyorum ama, $ ('# myForm'). Serialize() 'bir formdaki tüm öğeleri seri hale getirmek için tasarlandığından çalışır ** veya ** giriş öğelerinin jQuery dizisi. [Dokümanlarda belirtildiği gibi] (http://api.jquery.com/serialize/) – Liam

3

bu da bir düğme ile div içeriğini seri hale İçin

$('div :input').serializeArray() 

:)

1

ile çalışır bu içinden çapraz olmadığı için daha etkili bir yol olacak bütün dom.

$(this).closest('div').find("input,select").serialize();

düğme olayla bu takmak ve div içindeki ise birincil formu göndermek kalmaması düğme ile event.preventdefault eklemeyi unutmayın emin olun.

6

Bunu, tümünü elde etmek için deneyin.

$('#divID *').serialize() 
İlgili konular