用户填写表单时自动保存表单的实用程序
项目描述
collective.autosaveform
本产品的目标是保存用户在表单中输入的内容,并在发生意外情况(浏览器崩溃、失去网络连接等)时可能重新填充表单。
如果可用,它将在浏览器的本地存储中保存输入的数据,并将它们发送到服务器以复制。如果本地存储不可用,它始终将数据发送到服务器。如果出现问题,用户再次打开表单时将预填充表单。
安装
将‘collective.autosaveform’添加到您的buildout中蛋的列表。再次运行buildout,然后使用Zope快速安装程序(或Plone产品管理)进行安装。
示例
可以在以下地址找到表单示例
https://: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 |