Tengo una forma bastante complicada con muchos "pasos" que el usuario completa. Algunos pasos (pensar en ellos como segmentos de formulario) tiene opciones por defecto, pero al hacer clic en un "introducir valores personalizados", que muestran un conjunto presente oculto de campos que el usuario puede introducir información en. Aquí está un ejemploUso de jQuery para almacenar el estado de un formulario complicado
<div id="#s1_normal">
<input type="radio" name="mode" value="a"> Mode A
<input type="radio" name="mode" value="b"> Mode B
Choose one of the above for applying average coefficient
values of "a" or "b" to 100% of your product or
<a href="#" onclick="toggleCustom('s1');">enter custom values</a>
</div>
<div id="#s1_custom">
%a: <input type="text" name="perc_a"> coeff. a <input type="text" name="coeff_a">
%b: <input type="text" name="perc_b"> coeff. b <input type="text" name="coeff_b">
Enter custom values above or
<a href="#" onclick="toggleCustom('s1');">choose average values</a>
Existen varios segmentos de este tipo, por ejemplo, # s1 .. # s7. Aquí está mi tarea. Quiero permitir al usuario guardar el estado de un formulario. Entonces, una vez que un usuario ha completado todo el formulario, seleccionando los valores predeterminados promedio para algunos segmentos e ingresando valores personalizados para otros, el usuario puede hacer clic en un botón y guardar todo el estado para descongelarlo más tarde. Estoy pensando, si puedo guardar el estado en un objeto que puedo serializar, puedo guardarlo en una tabla db u otro almacenamiento persistente.
El usuario puede volver en otro momento y volver a construir toda la sesión anterior.
¿Cómo puedo hacer esto? Está el plugin getAttributes http://plugins.jquery.com/project/getAttributes, y está el método jQuery serialize, pero no puedo comenzar. Por favor, dame un empujón en la dirección correcta.
Gracias por la sugerencia. Como señalé en mi pregunta, conozco el método de serialización, sin embargo, para mí, parece ser solo una parte de la solución. Para restaurar el formulario, tengo que leer los datos serializados almacenados, y luego reconstruir el formulario de vuelta al estado, incluidas todas sus entradas personalizadas ... es decir, si un segmento oculto se mostró para ingresar valores personalizados, quiero traer eso espalda. ¿Cómo hago eso? – punkish
@punkish: no conozco ningún método 'deserialize()' en el núcleo de jQuery. Por lo tanto, debe codificar su propio analizador personalizado o buscar un complemento. – jAndy
@punkish aquí está mi [plugin formstate] (http://jsfiddle.net/mindplay/yLPY3/) - una alternativa a serializar() y la falta de unserialize() que funciona con objetos en lugar de cadenas; Quería un complemento liviano que solo tratara con el estado de formulario, no con representaciones de cadenas o métodos de almacenamiento. Maneja radios, casillas de verificación, etc. de una manera sensata. –