FormFunction
字段类型列表 »FormFunction[formspec,func]
表示一个激活表单,当它被提交时,对根据 formspec 指定的表单所获得的值应用 func.
FormFunction[{"name1"type1,…},func]
表示一个激活表单,其中名为 namei 的字段被解释为类型 typei.
FormFunction[{{"name1",label1}type1,…},func]
使用 labeli 作为名为 namei 的字段的标签.
FormFunction[{namespec1type1default1,…},func]
使用 defaulti 作为由 namespeci 指定的字段的缺省值.
FormFunction[formspec,func,fmt]
指定在云端应用 func 得到的结果应该以格式 fmt 返回.
FormFunction[{formspec1,formspec2,…},func,…]
表示多页面表单,其中连续的 formspeci 可以是应用于目前得到的数值的函数.
更多信息和选项
- FormFunction[formspec,func] 显示由 formspec 指定的表单,以及一个“提交”按钮.
- 在 FormFunction[formspec,func] 中,formspec 可以是 FormObject[…].
- FormFunction[formspec,func] 求值以给出 FormFunction[FormObject[…],func],其中 FormObject 包含表单中所有字段的完整规范.
- CloudDeploy[FormFunction[…]] 生成一个包含表单激活版本的云对象.
- FormFunction[formspec,func][] 首先运算 Setting[formspec],给出表单中字段值的关联. 如果未生成验证错误,则对关联应用 func,并返回结果.
- 在评价 FormFunction 的效果之前,FormFunction[formspec,func][<"namek"->inputk,… >] 会将给定的输入插入到由 FormFunction 指定的表单.
- FormFunction[…][] 计算为激活表单,在假定给定输入有效的情况下,表单被提交时应用 func 的结果替代.
- 每个字段的 typei 可以是以下任意一种:
-
"form" Interpreter 支持的任意表单 Restricted[…], etc. Interpreter 支持的任意受条件限制的表单等 Interpreter[…] 任意 Interpreter 对象 assoc FormObject 中使用的关联 tfun 应用于字符串的任意函数 - 在由 FormFunction[{formspec1,formspec2,…},…] 表示的多页面表格中,显示由 formspeci 指定的连续多个表格,其中默认情况下最后的表格具有“完成”按钮,而前面的表格具有“下一个”按钮.
- 在 FormFunction[{formspec1,formspec2,…},…] 中,formspec1 后的 formspeci 通常总是纯函数. 它们通过给出从所有前面的 formspeci 得到的所有输入的数值应用于一个关联.
- FormFunction 的总体选项包括:
-
AppearanceRules Automatic 给出总体外观规则的关联 FormLayoutFunction Automatic 生成表单布局的函数 FormProtectionMethod Automatic 防护恶意内容的方法 ImageFormattingWidth $ImageFormattingWidth 输出格式的封装宽度 ImageSize Automatic 输出的整体图像尺寸 PageTheme Automatic 已部署网页的整体主题 - 当在云端被调用时,FormFunction[formspec,func] 默认返回适合网页输出格式的结果.
- FormFunction[formspec,func,fmt] 中的可能结果规范 fmt 有:
-
Automatic 作为尽可能合适的 HTML 或 CloudCDFElement 导出 "HTML" 作为没有动态内容的原始静态 HTML 页面导出 "HTMLThemed" 使用和表单相同的主题作为静态 HTML 导出 "HTMLPaneled" 作为面板中的 HTML 内容导出 "GIF","JPEG","PNG",… 结果的图像 "String" 结果的原始字符串形式 "fmt" ExportForm 支持的任意格式 None 不加改变的传递字符串或字节列表 {None,"type"} 通过所定义的指定 HTTP 响应类型传递 {fmt,opts} 具有选项的格式规范 f 将被应用于 body 的任意函数 - 当在云端被调用时,FormFunction[formspec,func,"fmt"] 等价于 FormFunction[formspec,ExportForm[func[#],"fmt"]&].
- 当在笔记本界面直接调用时,在 FormFunction[formspec,func,fmt] 中的结果规范 fmt 将被忽略.
范例
打开所有单元关闭所有单元范围 (25)
解释器规范 (6)
使用丰富的 Interpreter 规范:
Interpreter 头部是可选的,但是对指定 Interpreter 选项或者其他参数很有用:
默认值 (3)
标签 (1)
外观 (4)
控制 (7)
动态表单 (1)
包含 TemplateSlot 的表单的部分不被计算,直到 TemplateSlot[key] 中提到的键被绑定到合适的值:
多页面表单 (1)
FormFunction 支持跨越了几个页面的表单. 信息栏取决于前面页面中的值:
选项 (6)
属性和关系 (8)
FormFunction 被设计成可以与 APIFunction 交换:
FormFunction 的第一个参数可以以完整的 FormObject 给出:
计算 FormFunction,使得第一个变量变成完整的 FormObject:
FormFunction 的单个域使用 Interpreter 转换 Wolfram 语言表达式中的输入:
与直接应用 Interpreter 相同:
AnySubset 可用于产生一个控件,其中可以挑选多于一个的选项:
RepeatingElement 可用于创建可添加或者删除的信息栏群组:
CompoundElement 可用于创建信息栏的可扩展表格:
可能存在的问题 (1)
Interpreter["String"] 接受空白字符串. 但是,FormFunction 不接受空白字符串,其中,空白字符串和空白字段被同等对待:
文本
Wolfram Research (2014),FormFunction,Wolfram 语言函数,https://reference.wolfram.com/language/ref/FormFunction.html (更新于 2015 年).
CMS
Wolfram 语言. 2014. "FormFunction." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2015. https://reference.wolfram.com/language/ref/FormFunction.html.
APA
Wolfram 语言. (2014). FormFunction. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/FormFunction.html 年