2012-01-31 38 views
12

Estaba incursionando con el formulario serialize pero sorprendentemente no está serializando el formulario. Aquí está el código:jQuery serialize no funciona

<div id="content"> 
</div> 
<form id= "myform"> 
    <input type="text" id="inp"value="mytext"> 
    <input type="button" id="btn" value="serialize"/> 
</form> 

aquí es el código de jQuery estoy trabajando con:

$("form").submit(function(e){ 
    e.preventDefault(); 
    var v= $(this).serialize(); 
    console.log(v); 
}); 

aquí es el fiddle

Respuesta

47

Es necesario un atributo nameinput en sus campos. De lo contrario, son ignorados por jQuery's .serialize().

He aquí una cita from the docs:

Nota: Sólo los "controles" son exitosas en serie a la cadena. Ningún valor del botón de envío se serializa porque el formulario no se envió con un botón. Para que se incluya un valor de elemento de formulario en la cadena serializada, el elemento debe tener un atributo de nombre. Los valores de las casillas de verificación y botones de opción (entradas de tipo "radio" o "casilla de verificación") se incluyen solo si están marcados. Los datos de los elementos de selección de archivos no están serializados.

Ésta es tu violín con un atributo de nombre: http://jsfiddle.net/6fgUg/28/

+1

ah! solo necesitaba un par de ojos nuevos, TNX para la pronta respuesta – Tassadaque

2

Hay que darle un nombre al elemento HTML de entrada, por ejemplo:

<form id="myform"> 
    <input type="text" id="inp" name="inp" value="mytext"> 
    <input type="button" id="btn" name="btn" value="serialize"/> 
</form>