Ich habe ein ziemlich kompliziertes Formular mit vielen "Schritten" darin, die vom Benutzer ausgefüllt werden. Einige Schritte (man denke an sie als Form Segmente) Standardoptionen, aber auf Klick auf „benutzerdefinierte Werte eingeben,“ sie zu dieser Verordnung versteckte Reihe von Feldern angezeigt, die der Benutzer Informationen in eingeben. Hier ist ein BeispielVerwenden von jQuery zum Speichern des Status eines komplizierten Formulars
<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>
Es gibt mehrere solcher Segmente, z. B. # s1 .. # s7. Hier ist meine Aufgabe. Ich möchte dem Benutzer ermöglichen, den Status eines Formulars zu speichern. Nachdem ein Benutzer das gesamte Formular ausgefüllt, die Standardwerte für einige Segmente ausgewählt und benutzerdefinierte Werte für andere Segmente eingegeben hat, kann der Benutzer auf eine Schaltfläche klicken und den gesamten Status zum späteren Auftauen speichern. Ich denke, wenn ich den Zustand in einem Objekt speichern kann, das ich serialisieren kann, kann ich es in einer DB-Tabelle oder einem anderen dauerhaften Speicher speichern.
Der Benutzer kann zu einem späteren Zeitpunkt zurückkehren und die gesamte vorherige Sitzung neu aufbauen.
Wie mache ich das? Es gibt das getAttributes Plugin http://plugins.jquery.com/project/getAttributes, und da ist die jQuery serialize Methode, aber ich kann nicht für das Leben von mir anfangen. Bitte stoße mich in die richtige Richtung.
Danke für den Vorschlag. Wie ich in meiner Frage festgestellt habe, bin ich mir der Serialisierungsmethode jedoch bewusst, die für mich nur ein Teil der Lösung zu sein scheint. Um das Formular wiederherzustellen, muss ich die gespeicherten serialisierten Daten lesen und dann das Formular wieder in den Zustand zurückverwandeln, einschließlich aller benutzerdefinierten Einträge. Das heißt, wenn ein verstecktes Segment eingeblendet wurde, um benutzerdefinierte Werte einzugeben, möchte ich das bringen zurück. Wie gehe ich vor? – punkish
@punkish: Ich kenne keine 'deserialize()' Methode im jQuery Kern. Sie müssen entweder Ihren eigenen Parser selbst programmieren oder nach einem Plugin suchen. – jAndy
@punkish hier ist meine [Formstate-Plugin] (http://jsfiddle.net/mindplay/yLPY3/) - eine Alternative zu serialize() und die fehlende unserialize(), die mit Objekten statt Strings arbeitet; Ich wollte ein leichtgewichtiges Plugin, das nur mit form-state arbeitet, nicht mit String-Darstellungen oder Speichermethoden. Es handhabt Funkgeräte, Checkboxen usw. auf eine sinnvolle Art und Weise. –