2015-07-01 13 views
5

Próbuję dodać element do tablicy w javascript, a następnie serializować tablicę. Wydaje się jednak, że nie działa.Dodawanie elementów do tablicy, a następnie serializowanie() javascript

Proszę zobaczyć poniższy kod, co robię źle?

+0

'items' nie jest tablicą, jest obiektem jQuery. Po prostu przyklejesz do niego właściwości, prawdopodobnie nie zrobisz tego, co myślisz. – Yoshi

+0

Być może https://api.jquery.com/jQuery.makeArray/ – mplungjan

Odpowiedz

-1

Wypróbuj poniższy fragment kodu javscript. Nie próbowałem, ale myślę, że to może działać:

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

Zobacz poniższy link skrzypce: https://jsfiddle.net/nanncngr/

+0

Dzięki, po prostu próbowałem tego, ale jeśli zrobię 'alert (strData) ;, widzę, że _token nadal nie jest dodawany do tablicy. – V4n1ll4

+0

Myślę, że to powinno działać. Jeśli klucz "_token" nie zostanie utworzony, wypróbuj funkcję javascript push, aby dodać klucz "_token". –

+0

Po prostu próbowałem 'items.push ([{_ token: $ ('input [name = _token]'. Val()}]);' ale nadal nie ma szczęścia – V4n1ll4

2

Method serialize musi być stosowana do całej postaci, a nie do konkretnych elementów w tablicy, jeśli aby szeregować istniejący obiekt lub tablicę trzeba użyć param zamiast

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

Jako przykład:

<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/

... albo ...

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

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

https://jsfiddle.net/0ec8axot/

Ponadto, upewnij się, że pola formularza mają atrybut name

Serialize form not working in jQuery

+0

Dzięki za twoją sekcję "... lub ..." Andy, spędziłem trochę czasu próbując dowiedzieć się, dlaczego nie mogłem '.serialize()' prostej tablicy. [jQuery '.serialize()' docs] (https://api.jquery.com/serialize/) nawet nie odwołuje się do ['$ .param()'] (https://api.jquery.com/jQuery. param /) i przez chwilę miałem wariować. – CPHPython

Powiązane problemy