创建表单模板

:bookmark: 本指南说明如何使用表单模板来构建 Discourse 中的内容结构。

:person_raising_hand: 所需用户级别:管理员

表单模板允许您创建带有验证规则的结构化表单,用户在创建主题时可以填写这些表单,以便您可以确保用户提供您希望或需要用来支持他们的所有信息,例如用于错误报告、功能请求等。

注意: 对于功能更像指南而非结构化表单的模板,请考虑使用主题模板。

启用表单模板

您可以通过在 即将进行的更改 中将 启用表单模板 设置为“所有人”来开启表单模板。

创建表单模板

您可以通过转到 管理 > 外观 > 表单模板 (/admin/customize/form-templates) 来创建和管理表单模板。

要创建一个表单模板:

  1. 点击 新建模板

  1. 更新 模板名称 字段,为其提供一个内部名称。

  2. 使用页面顶部的按钮添加表单的各种字段,并更新字段属性(详见下文)。许多选项是标准的表单字段类型(例如,复选框、简答、下拉列表等),但有几个特定字段:

    • 标签组选择器: 用户可以从特定组中选择一个或多个标签。

    • Markdown 答案: 用户可以直接在精简版的编辑器中输入内容。当成员需要直接输入 Markdown(例如代码)或需要富文本编辑器支持的其他格式时,这非常理想。

  3. 为您的输入添加任何所需的验证。点击 验证 按钮以获取一个键(也显示在下方)。

  4. 点击 预览 按钮以确保一切看起来正确。

  5. 点击 保存

字段属性

所有字段类型的通用属性:

  • label: 可见的字段名称
  • placeholder: 空字段中显示的帮助文本(输入、文本区域、下拉列表、多选)
  • description: 字段下方显示的附加上下文或说明。

特定于上传的属性:

  • file_types: 允许的文件扩展名(例如 .jpg, .png, .pdf)的逗号分隔列表
  • allow_multiple: 布尔值,指示用户是否可以上传多个文件

下拉列表和多选属性:

  • none_label: 未选择任何选项时显示的文本
  • choices: 可用选项的数组

标签组选择器属性:

  • tag_group:(顶级字段属性)用于填充选项的标签组的名称
  • none_label: 未选择任何选项时显示的文本
  • multiple: 布尔值,指示用户是否可以选择多个标签(默认脚手架将其设置为 true

验证选项

| 键 | 类型 | 描述 |
|----|----|—|
| required | boolean | 要求填写该字段才能提交表单。 |
| minimum | integer | 对于文本字段,指定允许的最少字符数。 |
| maximum | integer | 对于文本字段,指定允许的最大字符数。 |
| pattern | regex; string | 对于文本字段,指定允许的输入的正则表达式。 |
| type | string | 对于输入字段,您可以指定应预期的输入类型(text, email, date, number, url, tel, color, password) |

将表单模板添加到类别

创建模板后:

  1. 导航到要使用该模板的类别。
  2. 点击 :wrench: 按钮编辑类别。

  1. 切换 高级设置 按钮(如果使用的是新的简化类别设置)。
  2. 转到 模板 选项卡。
  3. 打开 表单模板 切换开关。
  4. 在下拉菜单中选择表单模板。
  5. 点击 保存类别

当一个类别分配了多个模板时,用户在创建主题时会看到一个模板选择器。

成员体验

使用表单模板创建主题

当成员在有表单模板的类别中创建主题时,表单会自动显示在编辑器中。如果同一个类别应用了多个模板,成员可以从下拉列表中选择正确的模板。如果用户尝试在未准确填写每个字段的情况下创建主题,他们将看到验证错误。

预填充表单值

可以使用与字段 ID 匹配的 URL 参数来预先填充表单字段。例如:/new-topic?software-version=2.4.1&severity=Critical

这对于链接到主题创建并已填写某些字段的情况很有用。

1 个赞

正则表达式模式看起来是怎样的,以及期望使用哪种正则表达式方言?我尝试了以下模式,但它们都通过了,而我没有预料到它们会通过:

  • 2[6-9][0-1][0-9][0-3][0-9] 匹配输入 180918
  • /2[6-9][0-1][0-9][0-3][0-9]/ 匹配输入 180918
  • /2[6-9][0-1][0-9][0-3][0-9]/ 匹配输入 12