用户填写表单时自动保存表单的实用程序
项目描述
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4ca20abb76c3dc544536be356c1d26e4fe9a5f072caeff7214d353725a76af6c |
|
MD5 | 2f7b5264c4488a744b64db56f0248ccd |
|
BLAKE2b-256 | d04a96b17ccafe55fae8005d21a292d4657ed76b7b6e3b40cdd3903da74c02d3 |