TextField 文本框
文本框组件允许用户在页面中输入文本,通常用于表单和对话框。
使用方法
按需导入组件:
import 'mdui/components/text-field.js';
按需导入组件的 TypeScript 类型:
import type { TextField } from 'mdui/components/text-field.js';
使用示例:
<mdui-text-field label="Text Field"></mdui-text-field>
辅助文本
通过 label
属性设置文本框上方的标签文本。
通过 placeholder
属性设置无值时的占位文本。
通过 helper
属性设置文本框底部的帮助文本。也可以使用 helper
slot 来设置帮助文本。添加 helper-on-focus
属性则仅在输入框聚焦时显示帮助文本。
可清空
添加 clearable
属性后,当文本框有值时,会在右侧添加清空按钮。
文本右对齐
添加 end-aligned
属性可以使文本右对齐。
前后文本及图标
通过设置 icon
和 end-icon
属性,可以在文本框的左侧和右侧添加 Material Icons 图标。也可以通过 icon
和 end-icon
slot 在文本框的左侧和右侧添加元素。
通过设置 prefix
和 suffix
属性,可以在文本框的左侧和右侧添加文本。也可以通过 prefix
和 suffix
slot 在文本框的左侧和右侧添加文本元素。这些文本只有在文本框聚焦或有值时才会显示。
只读模式
通过添加 readonly
属性,可以将文本框设置为只读模式。
禁用状态
通过添加 disabled
属性,可以禁用文本框。
多行文本框
通过 rows
属性,可以设置多行文本框的行数。
也可以添加 autosize
属性,使文本框能根据输入内容的长度自动调整高度。通过 min-rows
和 max-rows
属性,可以指定自动调整高度时的最小行数和最大行数。
字数统计
当通过 maxlength
属性设置了最大字数时,可以添加 counter
属性在文本框下方显示字数统计。
密码框
当 type="password"
时,添加 toggle-password
属性可以在文本框右侧添加切换密码可见性的按钮。
API
属性
HTML 属性 | JavaScript 属性 | Reflect | 类型 | 默认值 |
---|---|---|---|---|
variant | variant | 'filled' | 'outlined' | 'filled' | |
文本框的形状。默认为
| ||||
type | type | 'text' | 'number' | 'password' | 'url' | 'email' | 'search' | 'tel' | 'hidden' | 'date' | 'datetime-local' | 'month' | 'time' | 'week' | 'text' | |
文本框输入类型。默认为
| ||||
name | name | string | '' | |
文本框名称,将与表单数据一起提交 | ||||
value | value | string | '' | |
文本框的值,将与表单数据一起提交 | ||||
defaultValue | string | '' | ||
默认值。在重置表单时,将重置为该默认值。该属性只能通过 JavaScript 属性设置 | ||||
label | label | string | - | |
标签文本 | ||||
placeholder | placeholder | string | - | |
占位符文本 | ||||
helper | helper | string | - | |
文本框底部的帮助文本。也可以通过 | ||||
helper-on-focus | helperOnFocus | boolean | false | |
是否仅在获得焦点时,显示底部的帮助文本 | ||||
clearable | clearable | boolean | false | |
是否可清空文本框内容 | ||||
clear-icon | clearIcon | string | - | |
可清空文本框时,显示在文本框右侧的清空按钮的 Material Icons 图标名。也可以通过 | ||||
end-aligned | endAligned | boolean | false | |
是否将文本右对齐 | ||||
prefix | prefix | string | - | |
文本框的前缀文本。只在文本框聚焦或有值时显示。也可以通过 | ||||
suffix | suffix | string | - | |
文本框的后缀文本。只在文本框聚焦或有值时显示。也可以通过 | ||||
icon | icon | string | - | |
文本框的前缀图标的 Material Icons 图标名。也可以通过 | ||||
end-icon | endIcon | string | - | |
文本框的后缀图标的 Material Icons 图标名。也可以通过 | ||||
error-icon | errorIcon | string | - | |
表单字段验证失败时,显示在文本框右侧的 Material Icons 图标名。也可以通过 | ||||
form | form | string | - | |
关联的 如果未指定此属性,则该元素必须是 | ||||
readonly | readonly | boolean | false | |
是否为只读模式 | ||||
disabled | disabled | boolean | false | |
是否禁用输入框 | ||||
required | required | boolean | false | |
提交表单时,是否必须填写该字段 | ||||
rows | rows | number | - | |
文本框的固定显示行数 | ||||
autosize | autosize | boolean | false | |
是否根据输入内容自动调整文本框高度 | ||||
min-rows | minRows | number | - | |
| ||||
max-rows | maxRows | number | - | |
| ||||
minlength | minlength | number | - | |
允许输入的最小字符数 | ||||
maxlength | maxlength | number | - | |
允许输入的最大字符数 | ||||
counter | counter | boolean | false | |
是否显示字数统计,只在 | ||||
min | min | number | - | |
当 | ||||
max | max | number | - | |
当 | ||||
step | step | number | - | |
| ||||
pattern | pattern | string | - | |
用于表单验证的正则表达式 | ||||
toggle-password | togglePassword | boolean | false | |
| ||||
show-password-icon | showPasswordIcon | string | - | |
密码切换按钮的 Material Icons 图标,当密码为明文时显示。也可以通过 | ||||
hide-password-icon | hidePasswordIcon | string | - | |
密码切换按钮的 Material Icons 图标,当密码为密文时显示。也可以通过 | ||||
autocapitalize | autocapitalize | 'none' | 'sentences' | 'words' | 'characters' | - | |
iOS 的非标准属性,用于控制文本首字母是否自动大写。在 iOS5 及以后的版本上有效。可选值包括:
| ||||
autocorrect | autocorrect | string | - | |
| ||||
autocomplete | autocomplete | string | - | |
| ||||
enterkeyhint | enterkeyhint | 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send' | - | |
| ||||
spellcheck | spellcheck | boolean | false | |
是否启用拼写检查 | ||||
inputmode | inputmode | 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url' | - | |
| ||||
validity | ValidityState | - | ||
表单验证状态对象,具体参见 | ||||
validationMessage | string | - | ||
如果表单验证未通过,此属性将包含提示信息。如果验证通过,此属性将为空字符串 | ||||
valueAsNumber | number | - | ||
获取当前值,并转换为 | ||||
autofocus | autofocus | boolean | false | |
是否在页面加载完成后自动获取焦点 | ||||
tabindex | tabIndex | number | - | |
元素在使用 Tab 键切换焦点时的顺序 |
方法
名称 | 参数 | 返回值 |
---|---|---|
select | void | |
选中文本框中的文本 | ||
setSelectionRange |
| void |
选中文本框中特定范围的内容 | ||
setRangeText |
| void |
将文本框中特定范围的文本替换为新的文本 | ||
checkValidity | boolean | |
检查表单字段是否通过验证。如果未通过,返回 | ||
reportValidity | boolean | |
检查表单字段是否通过验证。如果未通过,返回 如果验证未通过,还会在组件上显示验证失败的提示。 | ||
setCustomValidity |
| void |
设置自定义的错误提示文本。只要这个文本不为空,就表示字段未通过验证 | ||
click | void | |
模拟鼠标点击元素 | ||
focus |
| void |
将焦点设置到当前元素。 可以传入一个对象作为参数,该对象的属性包括:
| ||
blur | void | |
移除当前元素的焦点 |
Slots
名称 |
---|
icon |
左侧图标 |
end-icon |
右侧图标 |
error-icon |
验证失败状态的右侧图标 |
prefix |
左侧文本 |
suffix |
右侧文本 |
clear-button |
清空按钮 |
clear-icon |
清空按钮中的图标 |
toggle-password-button |
密码显示状态切换按钮 |
show-password-icon |
显示密码状态下,密码显示状态切换按钮中的图标 |
hide-password-icon |
隐藏密码状态下,密码显示状态切换按钮中的图标 |
helper |
底部的帮助文本 |
CSS Parts
名称 |
---|
container |
文本框容器 |
icon |
左侧图标 |
end-icon |
右侧图标 |
error-icon |
验证失败状态的右侧图标 |
prefix |
左侧文本 |
suffix |
右侧文本 |
label |
上方的标签文本 |
input |
内部的 |
clear-button |
清空按钮 |
clear-icon |
清空按钮中的图标 |
toggle-password-button |
密码显示状态切换按钮 |
show-password-icon |
显示密码状态下,密码显示状态切换按钮中的图标 |
hide-password-icon |
隐藏密码状态下,密码显示状态切换按钮中的图标 |
supporting |
底部辅助信息容器,包括 helper、error、counter |
helper |
底部的帮助文本 |
error |
底部的错误描述文本 |
counter |
底部右侧的字数统计 |