FormObject
字段类型列表 »FormObject[{"name1"type1,"name2"type2,…}]
表示一个表单,含有名为 namei 的、接受 typei 类型的数据的字段.
FormObject[{{"name1",label1}type1,…}]
使用 labeli 作为名为 namei 的字段的标签.
FormObject[{"name1"assoc1,…,objj,…}]
对字段使用完整规范 associ,并且使用 objj 作为表单布局的一部分.
更多信息和选项
- FormObject[…] 在笔记本界面中显示为具有可填充字段的表单,可以或者输入文本,或者使用其他控件.
- FormObject 可用于在 FormFunction 中指定表单结构.
- 在计算时,FormObject[…] 转化为 FormObject[fields],其中 fields 中的每个项目具有格式为 "namei"->associ 的完整规范. 完整规范 associ 的元素包括:
-
"Input" 字段的原始输入,如果有(通常是一个字符串) "Interpreter" 用于字段的解释器 "Required" 字段是否要求输入 "Default" 字段的默认值,如果有 "Control" 给字段提供的控件类型 "AutoSubmitting" 在字段中进行输入是否会自动提交表单 "Disambiguation" 是否要求为解释消除歧义 "Label" 字段的标签 "Hint" 显示在输入字段内的提示信息 "Masked" 是否遮住输入字段中的输入 "Help" 与字段相关联的帮助 - Setting[FormObject[…]] 给出格式为 <"name1"->val1,… > 的关联,其中 vali 是通过解释 "Input" 元素获得的值,根据 "Interpreter" 与 "namei" 关联,"Input" 元素与每个 "namei" 关联.
- 如果 "Input" 缺失,或者 "Interpreter" 失败,那么 "Value" 的值是 Failure 对象.
- FormObject[…][<"name1"->input1,… >] 产生 FormObject[…],其中对应于包括的每个 namei 的 "Input" 被 inputi 替换.
- 在 FormObject[{…,objj,…}] 中,objj 可以是 Delimiter,表示水平分隔符.
- 它们也可以是头部为 Style、Row、Item、Text、ExpressionCell 和 TextCell 的表达式,以及诸如 TabView 和 Grid 这样的的视窗和布局构件.
- 在 FormObject[{"name1"->type1,…}] 中,typei 用于对完整规范中的 "Interpreter" 给出值.
- 类型规范的可能形式为:
-
"form" 由 Interpreter 支持的任何形式 Restricted[…]等 由 Interpreter 支持的任意限制形式等 Interpreter[…] 任意完整 Interpreter 对象 tfun 将应用于原始输入的任意函数 - 如果只给出 "namei",没有给出 typei 规则,则假定解释器是 Identity,因此值恰好是以相应 "Input" 元素给出.
- 默认情况下,用于每个字段的控件由指定的输入类型确定. 对于类型为 "String",单行输入默认情况下位于网络上;输入 "Text" 产生多行文本字段.
- 显式给出与 "Control" 相关联的数值的可能的控件包括 InputField、PopupMenu、Slider 和 RadioButtonBar.
- 规范 "namei"->AutoSubmitting[typei] 表明如果对与 namei 相关联的字段进行输入,应该自动提交整个表单.
- FormObject[AutoSubmitting[spec]] 表明如果对任意字段进行输入,则自动提交表单.
- FormObject 的整体选项包括:
-
AppearanceRules Automatic 给出整体外观规则的关联 FormLayoutFunction Automatic 产生表单最终布局的函数 PageTheme Automatic 部署网页时使用的整体主题 - AppearanceRules 的设置中的典型元素包括:
-
"Title" None 表单的整体标题 "Description" None 表单顶部包括的描述 "RequiredFieldIndicator" None 显示必填字段的指示器 "SubmitLabel" "Submit" 表单的提交按钮的文本 "AddLabel" "+" 重复元素的添加重复元素的添加按钮的文本 "DeleteLabel" "-" 删除按钮的文本 "AddTooltip" "Add" 添加按钮的工具提示条 "DeleteTooltip" "Remove" 删除按钮的工具提示条 "NextLabel" "Next" 多页面表单的"下一页"按钮的文本 "ItemLayout" "Horizontal" 字段标签和消息的布局 - "ItemLayout" 的可能设置包括 "Horizontal"、"Vertical" 和 "Inline".
范例
打开所有单元关闭所有单元基本范例 (3)
范围 (17)
FormObject 结构 (1)
有效的 FormObject 计算得到具有所有元信息的 Association 对象:
表单元数据 (3)
解释器规范 (3)
默认 (1)
使用 RuleDelayed 延迟计算:
输入 (1)
使用 RuleDelayed 强制在每次绘制表单时进行一次新的计算:
控件 (2)
标签 (1)
帮助 (1)
可以使用 RuleDelayed 并且返回任意表达式:
推广和延伸 (1)
可以在 XMLTemplate 内使用表单;将产生 HTML 代码:
选项 (2)
应用 (1)
使用 FormObject 验证数据:
属性和关系 (2)
可以使用 FormObject 作为 APIFunction 和 FormFunction 的第一个参数:
FormObject 的单个字段使用 Interpreter 来转化 Wolfram 语言表达式下的输入:
与直接应用 Interpreter 相同:
可能存在的问题 (4)
"Hint" 和 "Masked" 只被 InputField 支持:
在 Interpreter 类型中使用 Alternatives 时,可能会得到错误的控制器:
FormObject 是形式规约的惰性表示;因此,其中的按钮不起作用:
当 Interpreter 类型不是支持列表的形式时,仅保留最后一个元素:
文本
Wolfram Research (2014),FormObject,Wolfram 语言函数,https://reference.wolfram.com/language/ref/FormObject.html.
CMS
Wolfram 语言. 2014. "FormObject." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/FormObject.html.
APA
Wolfram 语言. (2014). FormObject. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/FormObject.html 年