用户填写表单时自动保存表单的实用程序
collective.autosaveform的Python项目详细描述
集合。自动保存
此产品的目标是保存用户在表单中输入的内容 可能在发生错误时重新填充表单(浏览器 崩溃、失去互联网接入等)。
如果可用,它会将输入的数据存储在浏览器的本地存储中 并将它们发送到服务器进行复制。如果本地存储不是 可用时,它总是将数据发送到服务器。 如果出现问题,当用户打开表单时,表单将被预填充 又来了。
安装
将“collective.autosaveform”添加到 建造。再次运行buildout,然后使用zope quick安装它 安装程序(或plone产品管理)。
设置表单
要启用表单的自动保存,首先需要向 表格:
<form id="my_saved_form"> </form>
然后,必须在python端注册它。这可以通过 升级步骤,例如:
from collective.autosaveform import config from Products.CMFCore.utils import getToolByName def register_form(context): tool = getToolByName(context, 'portal_autosaveform') try: tool.register_form('my_saved_form', {'text_field': config.TEXT, 'radio_field': config.RADIO}) except: # Log that the form was already registered. pass
处理表单时,还应将其标记为已处理(因此 数据将不再填写):
def process_form(...): # Process the form ... tool = getToolByName(context, 'portal_autosaveform') tool.mark_form_processed('my_saved_form')
最后一步,在表单所在的模板中,启用 自动保存表单的jquery插件:
<script type="text/javascript"> jq('#my_saved_form').autosaveform(); </script>
您可以查看jquery插件以获得可用的选项 (collective/autosaveform/skins/autosaveform/jquery.autosaveforms.js)。
更改日志
0.2(2011-10-13)
- 错误修复:当窗体标记为时未调用Calback 处理。[文森特]
0.1(2011-10-13)
- 初始版本