Dużo przeszukuję, ale nie znalazłem idealnej różnicy między metodą jquery a serialize
i serializeObject
.Różnica między serializacją a serializacjąObject jquery
Proszę, pomóżcie mi to zrozumieć.
Dużo przeszukuję, ale nie znalazłem idealnej różnicy między metodą jquery a serialize
i serializeObject
.Różnica między serializacją a serializacjąObject jquery
Proszę, pomóżcie mi to zrozumieć.
Jak widać here, serializeObject
nie jest natywną metodą jQuery i dlatego istnieje tylko wtedy, gdy wstawiłeś go wcześniej lub poprzedni programista witryny. Jak wspomniano w Q&A found here, funkcja ta została prawdopodobnie znaleźć, gdy ktoś pracuje na swoim miejscu „searched a way to serialize a form
” i znalazłem następujące rozszerzenia:
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
Look dla serializeObject
gdzieś w JS, ale należy pamiętać, to prawdopodobnie nie potrzebne jako to jest
wydaje się robić to samo, co
.$.fn.serialize
Po dokładniejszym sprawdzeniu okazało się, że to nie to samo. serializeObject
metoda znaleziona w innym Q & A będzie serializować wartość formularza jako Obiekt, podczas gdy serialize
koduje wartości jako ciąg do przesłania.
Proszę zwrócić uwagę, jeśli chcesz coś jak serailizeObject
że pochodzi z jQuery Rdzenia, to proszę zobaczyć serializeArray
.
Wynik będzie nieco inny, ponieważ serializeArray
stworzy tablicę obiektów wartości twojego formularza. Każdy obiekt mający { name: "", value: "" }
Developer
Tools
Console
w przykładzie.
Powinieneś użyć 'if (o.hasOwnProperty (this.name)) zamiast' if (o [this.name]) '. Jeśli pierwsze wejście poza grupą o tej samej nazwie "nazwa" jest puste, drugim wariantem będzie "fałsz". –
@MaximPechenin: Jeśli przeczytasz pytanie i odpowiedź, przekonasz się, że nie napisałem tej metody. Po prostu odwołuję się do tego, ponieważ jest to najpopularniejsza forma, jaką mogę znaleźć w Internecie. Chodzi o to, aby pomóc OP określić, gdzie może być metoda, która powodowała zakłócenia. – SpYk3HH
$.serializeObject
jest wariantem istniejący $.serialize
metodę, która, zamiast kodowania elementów formularza do łańcucha, konwertuje elementy formularza do ważnego JSON
obiektu, który może być używany w aplikacji JavaScript
.
zrobiłem kilka kopanie tutaj na stackoverflow na szeregowania formularz do obiektu json i skończyło się znalezieniem tej metody
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
jeszcze nie pasuje na co byłem w pracy. Stworzyłem więc własną wtyczkę. Jeśli zainteresowany może co to sprawdzić https://github.com/citnvillareal/serializeObject
Myślę, że to prosty sposób! TODO--
$.fn.serializeObject = function() {
var o = {};
this.find("[name]").each(function() {
o[this.name] = this.value;
});
return o;
};
jQuery ma metodę o nazwie 'serializeObject' w jej rdzeniu. Jeśli widzisz, że używasz tego, prawdopodobnie jest to wtyczka i prawdopodobnie robi to samo co 'serializowanie' – SpYk3HH
O ile mi wiadomo' serializeObject' nie jest funkcją rdzeniową jquery, więc najpierw musisz nam powiedzieć gdzie czy dostałeś tę wtyczkę, ale w każdym razie nie myśl, że warto to porównać. –
Więcej informacji można znaleźć [*** tutaj ***] (http://stackoverflow.com/questions/8900587/jquery-serializeobject-is-not-a-function-only-in-firefox) – SpYk3HH