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

collective.autosaveform的Python项目详细描述


集合。自动保存

此产品的目标是保存用户在表单中输入的内容 可能在发生错误时重新填充表单(浏览器 崩溃、失去互联网接入等)。

如果可用,它会将输入的数据存储在浏览器的本地存储中 并将它们发送到服务器进行复制。如果本地存储不是 可用时,它总是将数据发送到服务器。 如果出现问题,当用户打开表单时,表单将被预填充 又来了。

安装

将“collective.autosaveform”添加到 建造。再次运行buildout,然后使用zope quick安装它 安装程序(或plone产品管理)。

样品

表格样本可在以下地址找到:

http://localhost:8080/<yourplonesite>/autosave_sample

设置表单

要启用表单的自动保存,首先需要向 表格:

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

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaFX进度条从单独的函数更改而来   jvm使用java服务器选项   java在<li>元素中查找同名的最后一个链接   java问题将参数传递给不同公共类中的构造函数   如何在php中从java函数中获取字符串   java如何在Android中动态显示多个tile   java仅使用Ribbon而不使用任何服务注册表是否可以实现负载平衡?   Jersey 1.19版本的java Swagger JAXRS出现“冲突URI模板”错误   带H2数据库的java Spring boot jpa   从12:00:00到00:00:00的日期转换   Android中的java如何设置文本?   java密钥库“不支持的保护参数”   http使用Java在Java中发送httprequest。净包   SpringJava刷新数据库   java在Spring Boot应用程序中使用嵌入式MongoDb和MongoTemplate失败   java需要什么MatOfMatch对象?   xml使用Java中的合并算法将两个值合并为单个值   java SQLite数据库不保存数据为什么不工作