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,表示水平分隔符.
  • 它们也可以是头部为 StyleRowItemTextExpressionCellTextCell 的表达式,以及诸如 TabViewGrid 这样的的视窗和布局构件.
  • FormObject[{"name1"->type1,}] 中,typei 用于对完整规范中的 "Interpreter" 给出值.
  • 类型规范的可能形式为:
  • "form"Interpreter 支持的任何形式
    Restricted[]Interpreter 支持的任意限制形式等
    Interpreter[]任意完整 Interpreter 对象
    tfun将应用于原始输入的任意函数
  • 如果只给出 "namei",没有给出 typei 规则,则假定解释器是 Identity,因此值恰好是以相应 "Input" 元素给出.
  • 默认情况下,用于每个字段的控件由指定的输入类型确定. 对于类型为 "String",单行输入默认情况下位于网络上;输入 "Text" 产生多行文本字段.
  • 显式给出与 "Control" 相关联的数值的可能的控件包括 InputFieldPopupMenuSliderRadioButtonBar.
  • 规范 "namei"->AutoSubmitting[typei] 表明如果对与 namei 相关联的字段进行输入,应该自动提交整个表单.
  • FormObject[AutoSubmitting[spec]] 表明如果对任意字段进行输入,则自动提交表单.
  • FormObject 的整体选项包括:
  • AppearanceRules Automatic给出整体外观规则的关联
    FormLayoutFunction Automatic产生表单最终布局的函数
    PageThemeAutomatic部署网页时使用的整体主题
  • 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 对象:

表单提交  (1)

表单使用子值提交:

当提交一个表单时,数据存储为第二个参数,输入位于第一个参数中:

表单元数据  (3)

你可以提取具有子值的表单元数据:

可以提取 "Help""Control""Interpreter" 等:

"Control" 给出默认格式化控件:

使用 "Failure" 获取失败:

如果没有指定要提取的部分,返回整个控件(具有标签和帮助):

可以按照相同方式提取 AppearanceRules

使用 Setting 提取清理后的数据:

可以进行几个具有部分数据的提交:

即使没有提交,使用具有默认值的表单被认为是有效的:

解释器规范  (3)

使用丰富的 Interpreter 规范:

列表可用来创建菜单:

选项可以是任意表达式:

使用自定义解释函数:

默认  (1)

指定字段的默认值;有默认值的字段则不需要:

使用 RuleDelayed 延迟计算:

输入 (1)

指定字段的初始值:

使用 RuleDelayed 强制在每次绘制表单时进行一次新的计算:

控件  (2)

不同类型具有不同的控件. "Color" 的颜色选择器:

或者是文件格式的文件选择器:

"Boolean" 的复选框:

你可以改变默认控件:

多个选项支持各种控件:

控件规范也接受纯函数:

标签  (1)

改变字段的标签:

可以使用 RuleDelayed 并且返回任意表达式:

使用 None 删除标签:

帮助  (1)

定义帮助信息:

可以使用 RuleDelayed 并且返回任意表达式:

提示  (1)

使用 "Hint" 显示控件内的提示信息:

遮罩  (1)

使用 "Masked" 隐藏控件中的输入:

消除歧义  (1)

对于 Wolfram Cloud 中自然语言解释的字符串,有些时候结果可能有歧义:

默认情况下,关闭消除歧义的功能,但可以很容易地再次激活:

推广和延伸  (1)

可以在 XMLTemplate 内使用表单;将产生 HTML 代码:

从表单提取元数据,并且编写自定义模板:

选项  (2)

AppearanceRules  (1)

编写自定义标题和描述:

使用图像作为品牌:

使用 "ItemLayout" 改变表单字段的外观:

FormLayoutFunction  (1)

可以指定纯函数以给出表单的特定布局:

应用  (1)

使用 FormObject 验证数据:

属性和关系  (2)

可以使用 FormObject 作为 APIFunctionFormFunction 的第一个参数:

FormObject 的单个字段使用 Interpreter 来转化 Wolfram 语言表达式下的输入:

这实际上和下面的相同:

与直接应用 Interpreter 相同:

可能存在的问题  (4)

"Hint""Masked" 只被 InputField 支持:

其他控件忽略 "Hint""Masked"

Interpreter 类型中使用 Alternatives 时,可能会得到错误的控制器:

明确设置 "Control" 字段可以解决问题:

FormObject 是形式规约的惰性表示;因此,其中的按钮不起作用:

Interpreter 类型不是支持列表的形式时,仅保留最后一个元素:

Wolfram Research (2014),FormObject,Wolfram 语言函数,https://reference.wolfram.com/language/ref/FormObject.html.

文本

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 年

BibTeX

@misc{reference.wolfram_2024_formobject, author="Wolfram Research", title="{FormObject}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/FormObject.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_formobject, organization={Wolfram Research}, title={FormObject}, year={2014}, url={https://reference.wolfram.com/language/ref/FormObject.html}, note=[Accessed: 21-November-2024 ]}