跳转到主要内容

用户填写表单时自动保存表单的实用程序

项目描述

collective.autosaveform

本产品的目标是保存用户在表单中输入的内容,并在发生意外情况(浏览器崩溃、失去网络连接等)时可能重新填充表单。

如果可用,它将在浏览器的本地存储中保存输入的数据,并将它们发送到服务器以复制。如果本地存储不可用,它始终将数据发送到服务器。如果出现问题,用户再次打开表单时将预填充表单。

安装

将‘collective.autosaveform’添加到您的buildout中蛋的列表。再次运行buildout,然后使用Zope快速安装程序(或Plone产品管理)进行安装。

示例

可以在以下地址找到表单示例

https://127.0.0.1:8080/<yourplonesite>/autosave_sample

设置表单

要启用表单的自动保存,您首先需要向您的表单添加一个ID

<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)

  • 修复bug:当表单被标记为已处理时,回调没有被调用。[vincent]

0.1 (2011-10-13)

  • 初始发布

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

collective.autosaveform-0.2.zip (32.8 kB 查看哈希值)

上传时间

由以下支持