Ho cercato molto ma non ho trovato la differenza perfetta tra il metodo serialize
e il metodo serializeObject
di jquery.Differenza tra serialize e serializeObject jquery
Per favore aiutami a capire questo.
Ho cercato molto ma non ho trovato la differenza perfetta tra il metodo serialize
e il metodo serializeObject
di jquery.Differenza tra serialize e serializeObject jquery
Per favore aiutami a capire questo.
Come si può vedere here, serializeObject
non è un metodo jQuery nativo e quindi esiste solo se l'utente o un programmatore precedente del sito l'ha inserito. Come è menzionato in un Q&A found here, questa funzione è stata probabilmente trovata quando qualcuno che lavora sul tuo sito "searched a way to serialize a form
" e ha trovato la seguente estensione:
$.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;
};
Cercare serializeObject
da qualche parte nel vostro JS, ma nota, è probabilmente non necessario in quanto it
sembra fare la stessa cosa di
.$.fn.serialize
Su ulteriore revisione, ho trovato che non è esattamente la stessa. serializeObject
metodo trovato in altri Q & Un serializzare del valore di un modulo come un oggetto, mentre serialize
codifica i valori come una stringa di presentazione.
prega di prendere nota, se si desidera qualcosa come serailizeObject
che è nativo del jQuery Nucleo, quindi si prega di consultare serializeArray
.
Il risultato sarà leggermente diverso in quanto serializeArray
creerà una matrice di oggetti dei valori del modulo. Ogni oggetto ha { name: "", value: "" }
Developer
Tools
Console
nell'esempio.
Si dovrebbe usare 'if (o.hasOwnProperty (this.name))' invece di 'if (o [this.name])'. Se il primo input di un gruppo con la stessa proprietà 'name' è vuoto, la seconda variante sarà' false'. –
@MaximPechenin: Se leggi la domanda e la risposta, scoprirai che non ho scritto quel metodo. Lo riferimento semplicemente come è la forma più popolare che potrei trovare in linea. Quel punto era di aiutare l'OP a identificare dove poteva essere un metodo che causava interferenze. – SpYk3HH
$.serializeObject
è una variante di $.serialize
metodo che, invece di codificare elementi di forma a stringa, converte elementi del modulo a un oggetto valido JSON
che può essere utilizzato nell'applicazione JavaScript
esistente.
ho fatto un po 'scavare qui su StackOverflow su serializzazione modulo per oggetto JSON e ho finito per trovare questo metodo
$.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;
};
ancora non si adatta a quello che stavo lavorando. Così ho creato il mio plugin. Se il vostro interesse si potrebbe cosa controllare questo fuori https://github.com/citnvillareal/serializeObject
penso che questo è il modo semplice! TODO--
$.fn.serializeObject = function() {
var o = {};
this.find("[name]").each(function() {
o[this.name] = this.value;
});
return o;
};
jQuery non ha un metodo chiamato 'serializeObject' nel suo nucleo. Se stai vedendo l'uso di questo, probabilmente è in un plugin e probabilmente fa la stessa cosa di 'serialize' – SpYk3HH
Per quanto ne so,' serializeObject' non è una funzione jquery principale quindi prima devi dirci dove hai avuto quel plugin, ma in ogni caso, non credo valga la pena il confronto. –
Ulteriori informazioni possono essere trovate [*** qui ***] (http://stackoverflow.com/questions/8900587/jquery-serializeobject-is-not-a-function-only-in-firefox) – SpYk3HH