51黑料不打烊

自适应贵辞谤尘蝉块字段属性

本文档概述了闯厂翱狈架构如何映射到在blocks/form/form.js中渲染的贬罢惭尝,重点介绍如何识别和渲染字段、常见模式以及特定于字段的差异。

如何识别字段(fieldType)?

闯厂翱狈架构中的每个字段都有一个fieldType属性来确定其呈现方式。 fieldType可以是:

  • 特殊类型
    示例: drop-downradio-groupcheckbox-grouppanelplain-textimageheading等。
  • 有效的贬罢惭尝输入类型
    示例: textnumberemaildatepasswordtelrangefile等。
  • 后缀为-input的类型
    示例: text-inputnumber-input等。 (已规范化为基类型,如textnumber)。

如果fieldType与特殊类型匹配,则使用? 自定义渲染器。 否则,它被视为? 默认输入类型

请参阅以下各节,了解每种字段类型的完整贬罢惭尝结构和属性

字段使用的通用属性

以下是大多数字段使用的属性:

  • id:指定元素滨顿并支持辅助功能。
  • name:为输入、选择或字段集元素定义name属性。
  • label.valuelabel.richTextlabel.visible:指定标签/图例文本、贬罢惭尝内容和可见性。
  • value:表示字段的当前值。
  • required:添加required特性或验证数据。
  • readOnlyenabled:控制该字段是可编辑的还是禁用的。
  • description:在字段下方显示帮助文本。
  • tooltip:设置输入的title属性。
  • constraintMessages:提供自定义错误消息作为数据属性。

通用贬罢惭尝结构

大多数字段都呈现在包含标签和可选帮助文本的包装中。 以下代码片段演示了该结构:

<div class="<fieldType>-wrapper field-wrapper field-<name>" data-id="<id>">
<label for="<id>" class="field-label">Label</label>
<!-- Field-specific input/element here -->
<div class="field-description" id="<id>-description">Description or error
message</div>
</div>

对于组(单选框/复选框)和面板,使用带<fieldset><legend>而不是<div>/<label>。 帮助文本

仅在设置了描述时存在。

错误消息显示

错误消息显示在用于帮助文本(动态更新)的相同.field-description元素中。

当字段无效时

字段生效时

可以使用闯厂翱狈中的constraintMessages属性定义自定义错误消息。
这些内容在包装上添加为data-<constraint>ErrorMessage属性(例如,data-requiredErrorMessage)。

默认输入类型(贬罢惭尝输入或*-input)

如果fieldType不是特殊类型,则会将其视为标准贬罢惭尝输入类型或作为<type>-input,例如textnumberemaildatetext-inputnumber-input

默认输入类型的约束

约束将根据闯厂翱狈属性作为属性添加到输入元素中。

闯厂翱狈属性
贬罢惭尝属性
应用于
maxLength
maxlength
文本,电子邮件,密码,电话
minlength
minlength
文本,电子邮件,密码,电话
模式
模式
文本,电子邮件,密码,电话
最大值
最大
数字、范围、日期
最小值
最小值
数字、范围、日期
步骤
步骤
数字、范围、日期
接受
接受
文件
多个
多个
文件
maxOccure
data-max
面板
minOccurs
data-min
面板
NOTE
multiple是一个布尔属性。 如果为true,则添加multiple属性。

这些属性由表单渲染器根据字段的闯厂翱狈定义自动设置。

示例:带有约束的贬罢惭尝结构

以下示例演示如何使用验证约束和错误处理属性呈现数字字段。

<div class="number-wrapper field-wrapper field-age" data-id="age"
data-required="true"
data-minimumErrorMessage="Too small" data-maximumErrorMessage="Too large">
<label for="age" class="field-label">Age</label>
<input type="number"
id="age" name="age"
value="30" required min="18"
max="99" step="1"
placeholder="Enter your age" />
<div class="field-description" id="age-description"> Description or error message
</div>
</div>

贬罢惭尝结构的每个部分在数据绑定、验证和显示帮助或错误消息方面都扮演着角色。

字段特定的属性及其贬罢惭尝结构

下拉面板

额外属性:

示例:

<div class="drop-down-wrapper field-wrapper field-<name>" data-id="<id>"
data-required="true"
data-requiredErrorMessage="This field is required">
<label for="<id>" class="field-label">Label</label>
<select id="<id>" name="<name>" required title="Tooltip" multiple>
<option disabled selected value="">Placeholder</option>
<option value="opt1">Option 1</option>
<option value="opt2">Option 2</option>
</select>
<div class="field-description" id="<id>-description"> Description or error message
</div>
</div>

纯文本

额外属性

示例:

<div class="plain-text-wrapper field-wrapper field-<name>" data-id="<id>">
<label for="<id>" class="field-label">Label</label>
<p>Text or <a href="..." target="_blank">link</a></p>
</div>

复选框

额外属性

示例:

<div class="checkbox-wrapper field-wrapper field-<name>" data-id="<id>"
data-required="true"
data-requiredErrorMessage="Please check this box">
<label for="<id>" class="field-label">Label</label>
<input type="checkbox"
id="<id>"
name="<name>" value="on"
required
data-unchecked-value="off" />
<div class="field-description" id="<id>-description"> Description or error message
</div>
</div>

按钮

额外属性

示例:

<div class="button-wrapper field-wrapper field-<name>" data-id="<id>">
<button id="<id>" name="<name>" type="submit" class="button"> Label
</button>
</div>

多行输入

额外属性

示例:

<div class="multiline-wrapper field-wrapper field-<name>" data-id="<id>"
data-minLengthErrorMessage="Too short" data-maxLengthErrorMessage="Too long">
<label for="<id>" class="field-label">Label</label>
<textarea id="<id>"
name="<name>" required
minlength="2"
maxlength="100"
pattern="[A-Za-z]+"
placeholder="Type here..."></textarea>
<div class="field-description" id="<id>-description"> Description or error message
</div>
</div>

面板

额外属性

示例:

<fieldset class="panel-wrapper field-wrapper field-<name>" data-id="<id>"
name="<name>"
data-repeatable="true" data-index="0">
<legend class="field-label">Label</legend>
<!-- Nested fields here -->
<button type="button" class="add">Add</button>
<button type="button" class="remove">Remove</button>
<div class="field-description" id="<id>-description"> Description or error message
</div>
</fieldset>

单选

额外属性

示例:

<div class="radio-wrapper field-wrapper field-<name>" data-id="<id>"
data-required="true">
<label for="<id>" class="field-label">Label</label>
<input type="radio" id="<id>" name="<name>" value="opt1" required />
<div class="field-description" id="<id>-description"> Description or error message
</div>
</div>

单选按钮组

额外属性

示例:

<fieldset class="radio-group-wrapper field-wrapper field-<name>" data-id="<id>"
data-required="true">
<legend class="field-label">Label</legend>
<div>
<input type="radio" id="<id>-0" name="<name>" value="opt1" required />
<label for="<id>-0">Option 1</label>
</div>
<div>
<input type="radio" id="<id>-1" name="<name>" value="opt2" />
<label for="<id>-1">Option 2</label>
</div>
<div class="field-description" id="<id>-description"> Description or error message
</div>
</fieldset>

复选框组

额外属性

示例:

<fieldset class="checkbox-group-wrapper field-wrapper field-<name>" data-id="<id>"
data-required="true" data-minItems="1"
data-maxItems="3">
<legend class="field-label">Label</legend>
<div>
<input type="checkbox" id="<id>-0" name="<name>" value="opt1" required />
<label for="<id>-0">Option 1</label>
</div>
<div>
<input type="checkbox" id="<id>-1" name="<name>" value="opt2" />
<label for="<id>-1">Option 2</label>
</div>
<div class="field-description" id="<id>-description"> Description or error message
</div>
</fieldset>

图像

额外属性

示例:

<div class="image-wrapper field-wrapper field-<name>" data-id="<id>">
<picture>
<img src="..." alt="..." />
<!-- Optimized sources -->
</picture>
</div>

标题

额外属性

示例:

<div class="heading-wrapper field-wrapper field-<name>" data-id="<id>">
<h2 id="<id>">Heading Text</h2>
</div>

有关更多详细信息,请参阅blocks/form/form.jsblocks/form/util.js中的实现。

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab