Docs

Documentation versions (currently viewingVaadin 24)
Documentation translations (currently viewingChinese)

此页面是对官方文档 (http://vaadin.com/docs) 的机器翻译。它可能包含错误、不准确或误述。Vaadin 不对翻译的准确性、可靠性或时效性作任何担保或声明。

Password Field

Password Field 是用于输入密码的输入字段。

Password Field 是用于输入密码的输入字段。 默认情况下输入内容是隐藏的。然而,在移动设备上,最后键入的字符会短暂显示一下。可以通过可选的显示按钮来切换隐藏。

Open in a
new tab
Source code
PasswordFieldBasic.java
password-field-basic.tsx
password-field-basic.ts

显示按钮

显示按钮允许用户禁用隐藏功能并查看他们已输入的值。这在移动设备上尤为有帮助,因为移动设备上的输入更容易出错。如果您不需要此功能,可将其禁用。

Open in a
new tab
Source code
PasswordFieldRevealButtonHidden.java
password-field-reveal-button-hidden.tsx
password-field-reveal-button-hidden.ts

基本特性

以下是大多数输入字段组件都支持的基本特性:

标签

标签用于标识输入字段。其内容为纯文本,并且长度受限于字段的宽度。可使用辅助信息工具提示来提供无法在标签中展示的附加信息。

强烈建议所有输入字段均使用可视化标签。当无法使用内置标签时,可以通过 aria-labelledby 属性将外部元素关联为字段标签。对于没有任何可见标签的字段,应通过 aria-label 属性为辅助技术提供不可见标签。

辅助信息

辅助信息用于在字段下方为用户提供可能需要输入的信息,例如格式要求或字段用途说明。

可以使用样式变体将辅助信息显示在字段上方

除了纯文本之外,辅助信息还可以包含组件和HTML元素。但若内容较为复杂或具有交互性,可能会存在可访问性问题。

占位符

占位符是在字段为空时显示的文本。其主要目的是在无法使用辅助信息的情况下,提供简短的输入提示(例如期望的格式)。

占位符不应替代可见标签。用户可能会误将其认为是手动输入的值。有关替代内置字段标签的方法,请参阅标签

工具提示

工具提示是在悬停和键盘聚焦时显示的小型文本弹窗。可用于为字段提供补充信息。这在始终可见的辅助信息不合适的情况下尤其有用。但总体建议优先使用辅助信息,因为它能带来更好的易发现性和移动端支持。更多信息请参阅工具提示文档。

清除按钮

清除按钮——当字段不为空时显示——会清空字段当前的值。尽管该按钮本身无法通过键盘聚焦,但在字段获得焦点时,可通过快捷键Esc触发清除操作。在搜索和筛选字段等场景下,用户常需清除数值,故此按钮尤为实用。而在普通表单中则较少使用。

前缀和后缀

前缀和后缀元素——分别呈现在字段两端——可用于显示单位、图标及与字段用途或格式相关的视觉提示。

前缀和后缀元素通常对屏幕阅读器等辅助技术不够友好。因此,其传递的信息也应通过其他方式如标签辅助信息或为字段本身添加 ARIA 属性加以传达。

外部及不可见标签(ARIA)

强烈建议所有输入字段使用可视化标签。当无法使用内置标签时,可以通过元素的 id 属性将外部元素关联为字段标签。没有任何可见标签的字段,建议为辅助技术(如屏幕阅读器)提供不可见标签。

Source code
HTML
<!-- 将外部元素关联为标签: -->
<label id="external-label">This is the label</label>
<vaadin-password-field accessible-name-ref="external-label">...

<!-- 为屏幕阅读器提供不可见的标签: -->
<vaadin-password-field accessible-name="This is the label">...
Java
Open in a
new tab
Source code
PasswordFieldBasicFeatures.java
password-field-basic-features.tsx
password-field-basic-features.ts

验证

Password Field 提供了基于约束的验证机制。约束允许您定义值必须满足的条件,以便被视为有效。验证通常在用户发起值更改时进行,例如输入内容后按下 Enter 键。如果值无效,该字段会以红色突出显示,输入下方会出现一条错误信息。不过,某些约束能够主动防止用户输入可能导致值无效的字符。

以下是所支持的约束列表及详细信息:

必填

必填字段在标签旁标有指示标记,并且当其值被首次输入后又被清除时,将变为无效。

推荐在表单顶部通过文字说明必填字段的指示标记。可以通过 --lumo-required-field-indicator 样式属性自定义该指示标记。

最小与最大长度

最小和最大输入长度约束决定了字段能接受的最小和最大字符数。当输入值短于最小长度时会触发校验错误,输入文本的最大长度也会受到限制。它们可用于强制特定格式,或限制长度以适应底层数据库架构。

当长度要求可能对用户不够明确时,建议通过辅助信息等方式对用户作出说明。

允许的字符

可以使用单字符正则表达式单独限制字段可输入的字符。与正则表达式不匹配的字符将被拒绝。但通过编程方式设置的值不会受到此约束,即便其包含不允许的字符。

Open in a
new tab
Source code
PasswordFieldValidation.java
password-field-validation.tsx
password-field-validation.ts

确保您为每个约束违反情形配置一个合适的错误信息,以便为用户提供明确的反馈。

Note
数据绑定与自定义校验
Flow 和 Hilla 提供了高级的 API —— Binder,可用于数据绑定及为多个字段添加自定义校验规则,从而创建表单。您可通过相关FlowHilla文章进一步了解 Binder。

只读与禁用

用于展示数值的字段应设置为 read-only 模式,以防止编辑。只读字段可获取焦点,并可被屏幕阅读器识别。它们可以显示工具提示,其数值可以被选中和复制。

当前不可用的字段应设置为 disabled。禁用字段由于对比度较低,不适宜用于展示信息。它们无法获得焦点,无法显示工具提示,也不会被屏幕阅读器识别,其数值也无法被选中和复制。

禁用字段适用于某些情况下可以根据用户操作变为可用的场景。如果用户无法进行任何操作使其可编辑,建议完全隐藏该字段。

Open in a
new tab
Source code
PasswordFieldReadonlyAndDisabled.java
password-field-readonly-and-disabled.tsx
password-field-readonly-and-disabled.ts

样式变体

可应用以下样式变体:

文本对齐

支持三种文本对齐方式:left(默认)、centerright

当以垂直分组展示数值时,推荐使用右对齐,这有助于数值的解读和对比。

紧凑变体

可通过紧凑变体令部分字段更为紧凑。字段的默认尺寸可通过样式属性进行自定义。

辅助信息显示于字段上方

辅助信息可显示在字段上方、标签下方。

边框

可通过为 --vaadin-input-field-border-width CSS 属性赋值(如 1px),为字段表面添加边框。可通过 html 选择器为所有输入字段全局应用边框,也可以仅应用于特定组件实例。要获得符合 WCAG 2.1 AA 级 色彩对比标准的默认 Lumo 字段样式,边框是必需的。

可通过 --vaadin-input-field-border-color 属性重写默认边框颜色。

Open in a
new tab
Source code
PasswordFieldStyles.java
password-field-styles.tsx
password-field-styles.ts

最佳实践

清晰地向用户表达您的密码要求,以便他们无需猜测。可以适当地利用Helper功能实现此目的。

Open in a
new tab
Source code
PasswordFieldHelper.java
password-field-helper.tsx
password-field-helper.ts

显示输入密码的强度也可以作为激励用户创建更好密码的因素。您可以使用更高级的 Helper 来显示它:

Open in a
new tab
Source code
PasswordFieldAdvancedHelper.java
password-field-advanced-helper.tsx
password-field-advanced-helper.ts

F578D95F-02B0-43C1-96CD-26926B472701