2015-07-01 14 views
5

Javascript'te bir diziye bir öğe eklemeye çalışıyorum ve diziyi serileştiriyorum. Ancak, çalışıyor gibi görünmüyor.Bir diziye öğeler ekleyin ve sonra serialize() javascript

Lütfen aşağıdaki kodu inceleyin, ne yapıyorum?

var currentParent = $(this).closest('tr'); 
var items = $("input,select", currentParent); 
items["_token"] = $('input[name=_token]').val(); 
var strData = items.serialize(); 
+0

'items' bir dizi değil, bir jQuery nesnesi. Üzerindeki özellikleri yapıştırma, muhtemelen düşündüğün şeyi yapmayacaktır. – Yoshi

+0

Belki de https://api.jquery.com/jQuery.makeArray/ – mplungjan

cevap

-1

Aşağıdaki javscript kod snippet'ini deneyin. Ben denemedim ama o iş düşünüyorum: Eğer varsa, https://jsfiddle.net/nanncngr/

+0

Teşekkürler, sadece bunu denedim ama eğer uyarı (strData) yaparsam, '_token hala diziye eklenmediğini görebiliyorum. – V4n1ll4

+0

Çalışması gerektiğini düşünüyorum. "_token" anahtarı oluşturulmamışsa, "_token" anahtarını eklemek için javascript push işlevini deneyin. –

+0

Ben sadece items.push çalıştım [[_ token: $ ('giriş [name = _token]'). Val()}]); 'ama yine de hayır şans – V4n1ll4

2

Yöntemi değil dizideki belirli öğelere, bütün bir forma uygulanması gerekir serialize:

var currentParent = $(this).closest('tr'); 
var items = $(currentParent).find("input, select"); 
items["_token"] = $('input[name=_token]').val(); 
var strData = items.serialize(); 

aşağıda keman bağlantıya bakın varolan bir nesneyi ya da dizi seri hale getirmek istediğiniz bir örnek olarak param yerine

http://api.jquery.com/jquery.param/

kullanmak gerekir:

<form action=""> 
    <input class="token" name="token" value="someValue" /> 
    <input class="someData" name="someData" /> 
</form> 

<script> 
    alert($('form').serialize()) // should show you someData=&token=someValue 
</script> 

https://jsfiddle.net/4cxa36vp/ ... ya da ...

var options = { 
    token : $('input.token').val(), 
    someData : null 
} 

alert($.param(options)) // should give you the same 
Ayrıca

https://jsfiddle.net/0ec8axot/

, sizin form alanları özellik olduğundan emin olun name

Serialize form not working in jQuery

+0

"... veya ..." bölümünüz için teşekkürler Andy, basit bir dizi neden .serialize() yapamadığımı anlamaya çalışırken biraz zaman harcadım. [jQuery '.serialize()' docs] (https://api.jquery.com/serialize/) bile ['$ .param()'] (https://api.jquery.com/jQuery. param /) ve bir an için deliriyordum. – CPHPython

İlgili konular