[jQuery-es] Serializando datos de formulario
David Arango
arango en gmail.com
Sab Dic 2 11:02:20 PST 2006
On 12/2/06, Ale Muñoz <bomberstudios en gmail.com> wrote:
> para un pequeño proyecto personal, necesito "serializar" los datos de
> un formulario cuando el usuario pulse el botón de "Submit".
En la api de Jquery tienes un ejemplo de como utilizar el método
serialize() [1] para conseguir lo que dices:
$("input[@type=text]").serialize();
El único problema es que por ejemplo para selects de múltiple opción
sólo te retornará un valor. Si necesitas eso te recomiendan utilizar
el plugin de formularios [2], aunque yo no lo he probado.
De todas formas no parece muy complicado hacerlo a patita, depende de
la complejidad del formulario, claro:
var formSerializer = {
json: {},
init: function() {
$('form.parseable input,form.parseable textarea,form.parseable
select').each(function() {
formSerializer.json[this.id] = this.value;
});
console.log("%s", formSerializer.json.toJSONString());
}
}
Esto es más simple que una patata pero cubre gran parte de lo que
necesitas (inputs de texto, textareas y selectes de una opción), para
que maneje bien selects multiopción, checkboxes y tal hay que hacer un
poco de branching, pero no es demasiado largo, de nuevo depende de lo
grande que los tengas (los requerimientos) :-D
toJSONString es un método pillado directamente de Douglas Crockford [3]
[1] http://jquery.com/api/#serialize
[2] http://www.malsup.com/jquery/form/
[3] http://www.json.org/json.js
--
David Arango, el único desarrollador con una orden de alejamiento de
Jeffrey Zeldman
Simplelogica.net, ahora con un 33,3% más de intromisión en listas de correo
Cuando no hago otra cosa escribo en mildiez.net
Más información sobre la lista de distribución jquery-es