Password Field
- 用法
- Styling
Password Field 是用于输入密码的输入字段。 默认情况下输入内容是隐藏的。然而,在移动设备上,最后键入的字符会短暂显示一下。可以通过 可选的显示按钮来切换隐藏。
显示按钮
显示按钮允许用户禁用隐藏功能并查看他们已输入的值。这在移动设备上尤为有帮助,因为移动设备上的输入更容易出错。如果您不需要此功能,可将其禁用。
new tab
Source code
PasswordFieldRevealButtonHidden.java
password-field-reveal-button-hidden.tsx
password-field-reveal-button-hidden.ts
基本特性
以下是大多数输入字段组件都支持的基本特性:
标签
辅助信息
辅助信息用于在字段下方为用户提供可能需要输入的信息,例如格式要求或字段用途说明。
可以使用样式变体将辅助信息显示在字段上方。
除了纯文本之外,辅助信息还可以包含组件和HTML元素。但若内容较为复杂或具有交互性,可能会存在可访问性问题。
占位符
工具提示
前缀和后缀
外部及不可见标签(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
new tab
Source code
PasswordFieldBasicFeatures.java
password-field-basic-features.tsx
password-field-basic-features.ts
验证
Password Field 提供了基于约束的验证机制。约束允许您定义值必须满足的条件,以便被视为有效。验证通常在用户发起值更改时进行,例如输入内容后按下 Enter 键。如果值无效,该字段会以红色突出显示,输入下方会出现一条错误信息。不过,某些约束能够主动防止用户输入可能导致值无效的字符。
以下是所支持的约束列表及详细信息:
必填
必填字段在标签旁标有指示标记,并且当其值被首次输入后又被清除时,将变为无效。
推荐在表单顶部通过文字说明必填字段的指示标记。可以通过 --lumo-required-field-indicator 样式属性自定义该指示标记。
最小与最大长度
最小和最大输入长度约束决定了字段能接受的最小和最大字符数。当输入值短于最小长度时会触发校验错误,输入文本的最大长度也会受到限制。它们可用于强制特定格式,或限制长度以适应底层数据库架构。
当长度要求可能对用户不够明确时,建议通过辅助信息等方式对用户作出说明。
允许的字符
可以使用单字符正则表达式单独限制字段可输入的字符。与正则表达式不匹配的字符将被拒绝。但通过编程方式设置的值不会受到此约束,即便其包含不允许的字符。
new tab
Source code
PasswordFieldValidation.java
password-field-validation.tsx
password-field-validation.ts
确保您为每个约束违反情形配置一个合适的错误信息,以便为用户提供明确的反馈。
只读与禁用
用于展示数值的字段应设置为 read-only 模式,以防止编辑。只读字段可获取焦点,并可被屏幕阅读器识别。它们可以显示工具提示,其数值可以被选中和复制。
当前不可用的字段应设置为 disabled。禁用字段由于对比度较低,不适宜用于展示信息。它们无法获得焦点,无法显示工具提示,也不会被屏幕阅读器识别,其数值也无法被选中和复制。
禁用字段适用于某些情况下可以根据用户操作变为可用的场景。如果用户无法进行任何操作使其可编辑,建议完全隐藏该字段。
new tab
Source code
PasswordFieldReadonlyAndDisabled.java
password-field-readonly-and-disabled.tsx
password-field-readonly-and-disabled.ts
样式变体
可应用以下样式变体:
文本对齐
支持三种文本对齐方式:left(默认)、center 和 right。
当以垂直分组展示数值时,推荐使用右对齐,这有助于数值的解读和对比。
紧凑变体
可通过紧凑变体令部分字段更为紧凑。字段的默认尺寸可通过样式属性进行自定义。
辅助信息显示于字段上方
辅助信息可显示在字段上方、标签下方。
边框
可通过为 --vaadin-input-field-border-width CSS 属性赋值(如 1px),为字段表面添加边框。可通过 html 选择器为所有输入字段全局应用边框,也可以仅应用于特定组件实例。要获得符合 WCAG 2.1 AA 级 色彩对比标准的默认 Lumo 字段样式,边框是必需的。
可通过 --vaadin-input-field-border-color 属性重写默认边框颜色。
new tab
Source code
PasswordFieldStyles.java
password-field-styles.tsx
password-field-styles.ts
最佳实践
清晰地向用户表达您的密码要求,以便他们无需猜测。可以适当地利用Helper功能实现此目的。
new tab
Source code
PasswordFieldHelper.java
password-field-helper.tsx
password-field-helper.ts
显示输入密码的强度也可以作为激励用户创建更好密码的因素。您可以使用更高级的 Helper 来显示它:
new tab
Source code
PasswordFieldAdvancedHelper.java
password-field-advanced-helper.tsx
password-field-advanced-helper.ts
F578D95F-02B0-43C1-96CD-26926B472701