我有一个相当复杂的表单,其中有许多由用户填写的“步骤”。一些步骤(将它们视为表单段)具有默认选项,但是在点击“输入自定义值”时,它们会显示一组此前隐藏的字段,用户可以在其中输入信息。以下是一个示例:
<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>
有几个这样的小节,例如#s1.. #s7。这是我的任务。我想让用户保存表单的状态。因此,一旦用户填写了整个表单,为某些段选择平均默认值,并为其他段输入自定义值,则用户可以单击按钮并将整个状态保存以供稍后恢复。 我在思考,如果我可以将状态保存在可以序列化的对象中,我就可以将其保存在数据库表或其他持久存储中。
用户可以在以后的某个时间返回并重构整个以前的会话。
我该如何做到这一点?有getAttributes插件http://plugins.jquery.com/project/getAttributes和jQuery serialize方法,但我无法开始。请指导我正确的方向。
sessionStorage.setItem("formdata",formToString(jQuery("#form")));
,然后这样调用它:var storedform = sessionStorage.getItem("formdata"); stringToForm(storedform,jQuery("#form"));
- Julian K$j(this)
表达式是打字错误吗?使用此脚本时我得到 JavaScript 错误,并且认为应该是$(this)
,对吗? - Matt$
是访问 jQuery 的默认方式。请参阅 https://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/ 以获取更多信息。 - Reese