面向 Web 开发人员版 — 最后更新于 2024 年 9 月 12 日
input
元素type
属性的状态type=hidden
)type=text
) 和搜索状态 (type=search
)type=tel
)type=url
)type=email
)type=password
)type=date
)type=month
)type=week
)type=time
)type=datetime-local
)type=number
)type=range
)type=color
)type=checkbox
)type=radio
)type=file
)type=submit
)type=image
)type=reset
)type=button
)input
元素属性input
元素 APIinput
元素所有当前引擎都支持。
type
属性不在 隐藏 状态中:交互式内容。type
属性不在 隐藏 状态中:列表,可标记,可提交,可重置,以及 自动大写和自动更正继承 与表单相关的元素。type
属性在 隐藏 状态中:列表,可提交,可重置,以及 自动大写和自动更正继承 与表单相关的元素。type
属性不在 隐藏 状态中:可感知内容。accept
— 文件上传控件 中预期文件类型的提示alt
— 当图像不可用时使用的替换文本autocomplete
— 表单自动填充功能的提示checked
— 控件是否已选中dirname
— 用于发送元素的 方向性 的表单控件的名称,在 表单提交 中使用disabled
— 表单控件是否已禁用form
— 将元素与 form
元素关联formaction
— 用于 表单提交 的 URLformenctype
— 用于 表单提交 的 条目列表 编码类型formmethod
— 用于 表单提交 的变体formnovalidate
— 为 表单提交 跳过表单控件验证formtarget
— 用于 表单提交 的 可导航height
— 垂直尺寸list
— 自动完成选项列表max
— 最大值maxlength
— 值的最大 长度min
— 最小值minlength
— 值的最小 长度multiple
— 是否允许多个值name
— 用于 表单提交 以及 form.elements
API 的元素的名称pattern
— 表单控件的值要匹配的模式placeholder
— 要放置在表单控件中的用户可见的标签popovertarget
— 目标为要切换、显示或隐藏的弹出窗口元素popovertargetaction
— 指示目标弹出窗口元素是否要切换、显示或隐藏readonly
— 是否允许用户编辑值required
— 控件是否为 表单提交 所必需size
— 控件的大小src
— 资源的地址step
— 表单控件的值要匹配的粒度type
— 表单控件的类型value
— 表单控件的值width
— 水平尺寸title
属性 在此元素上具有特殊语义:模式的描述(与 pattern
属性一起使用时)type
属性在 隐藏 状态中:面向作者;面向实施者。type
属性在 文本 状态中:面向作者;面向实施者。type
属性在 搜索 状态中:面向作者;面向实施者。type
属性在 电话 状态中:面向作者;面向实施者。type
属性在 URL 状态中:面向作者;面向实施者。type
属性在 电子邮件 状态中:面向作者;面向实施者。type
属性在 密码 状态下:面向作者;面向实现者。type
属性在 日期 状态下:面向作者;面向实现者。type
属性在 月份 状态下:面向作者;面向实现者。type
属性在 周 状态下:面向作者;面向实现者。type
属性在 时间 状态下:面向作者;面向实现者。type
属性在 本地日期和时间 状态下:面向作者;面向实现者。type
属性在 数字 状态下:面向作者;面向实现者。type
属性在 范围 状态下:面向作者;面向实现者。type
属性在 颜色 状态下:面向作者;面向实现者。type
属性在 复选框 状态下:面向作者;面向实现者。type
属性在 单选按钮 状态下:面向作者;面向实现者。type
属性在 文件上传 状态下:面向作者;面向实现者。type
属性在 提交按钮 状态下:面向作者;面向实现者。type
属性在 图片按钮 状态下:面向作者;面向实现者。type
属性在 重置按钮 状态下:面向作者;面向实现者。type
属性在 按钮 状态下:面向作者;面向实现者。HTMLInputElement
。input
元素 表示 一个类型化的数据字段,通常带有允许用户编辑数据的表单控件。
type
属性控制元素的数据类型(以及关联的控件)。它是一个 枚举属性,具有以下关键字和状态
关键字 | 状态 | 数据类型 | 控件类型 |
---|---|---|---|
hidden
| 任意字符串 | n/a | |
text
| 文本 | 不包含换行的文本 | 文本控件 |
search
| 搜索 | 不包含换行的文本 | 搜索控件 |
tel
| 电话 | 不包含换行的文本 | 文本控件 |
url
| URL | 绝对 URL | 文本控件 |
email
| 电子邮件 | 电子邮件地址或电子邮件地址列表 | 文本控件 |
password
| 密码 | 不包含换行的文本(敏感信息) | 隐藏数据输入的文本控件 |
date
| 日期 | 日期(年、月、日),不含时区 | 日期控件 |
month
| 月份 | 包含年和月的日期,不含时区 | 月份控件 |
week
| 周 | 包含周年的数字和周数的日期,不含时区 | 周控件 |
time
| 时间 | 时间(时、分、秒、秒的小数部分),不含时区 | 时间控件 |
datetime-local
| 本地日期和时间 | 日期和时间(年、月、日、时、分、秒、秒的小数部分),不含时区 | 日期和时间控件 |
number
| 数字 | 数值 | 文本控件或微调器控件 |
range
| 范围 | 数值,带有额外的语义,即精确值不重要 | 滑块控件或类似控件 |
color
| 颜色 | 具有 8 位红色、绿色和蓝色分量的 sRGB 颜色 | 颜色选择器 |
checkbox
| 复选框 | 从预定义列表中选择零个或多个值 | 复选框 |
radio
| 单选按钮 | 枚举值 | 单选按钮 |
file
| 文件上传 | 零个或多个文件,每个文件都有 MIME 类型 以及可选的文件名 | 标签和按钮 |
submit
| 提交按钮 | 枚举值,带有额外的语义,即它必须是最后选择的值,并且会启动表单提交 | 按钮 |
image
| 图片按钮 | 相对于特定图片大小的坐标,带有额外的语义,即它必须是最后选择的值,并且会启动表单提交 | 可点击图片或按钮 |
reset
| 重置按钮 | n/a | 按钮 |
button
| 按钮 | n/a | 按钮 |
哪些 accept
、alt
、autocomplete
、checked
、dirname
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、list
、max
、maxlength
、min
、minlength
、multiple
、pattern
、placeholder
、readonly
、required
、size
、src
、step
和 width
内容属性,checked
、files
、valueAsDate
、valueAsNumber
和 list
IDL 属性,select()
方法,selectionStart
、selectionEnd
和 selectionDirection
IDL 属性,setRangeText()
和 setSelectionRange()
方法,stepUp()
和 stepDown()
方法,以及 input
和 change
事件 应用 到 input
元素取决于其 type
属性的状态。定义每个类型的子部分也在规范性“簿记”部分明确定义了哪些功能适用,以及哪些功能 不适用 于每个类型。这些功能的行为取决于它们是否适用,如它们各自部分中所定义(参见 内容属性、API、事件)。
下表总结了这些内容属性、IDL 属性、方法和事件哪些 适用 于每个状态
文本, 搜索 | 电话, URL | 电子邮件 | 密码 | 日期, 月份, 周, 时间 | 本地日期和时间 | 数字 | 范围 | 颜色 | 复选框, 单选按钮 | 文件上传 | 提交按钮 | 图片按钮 | 重置按钮, 按钮 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
内容属性 | |||||||||||||||
接受
| · | · | · | · | · | · | · | · | · | · | · | 是 | · | · | · |
替代文本
| · | · | · | · | · | · | · | · | · | · | · | · | · | 是 | · |
自动完成
| 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | · | · | · | · | · |
选中
| · | · | · | · | · | · | · | · | · | · | 是 | · | · | · | · |
目录名
| 是 | 是 | 是 | 是 | 是 | · | · | · | · | · | · | · | 是 | · | · |
表单动作
| · | · | · | · | · | · | · | · | · | · | · | · | 是 | 是 | · |
表单编码类型
| · | · | · | · | · | · | · | · | · | · | · | · | 是 | 是 | · |
表单方法
| · | · | · | · | · | · | · | · | · | · | · | · | 是 | 是 | · |
表单验证
| · | · | · | · | · | · | · | · | · | · | · | · | 是 | 是 | · |
表单目标
| · | · | · | · | · | · | · | · | · | · | · | · | 是 | 是 | · |
高度
| · | · | · | · | · | · | · | · | · | · | · | · | · | 是 | · |
列表
| · | 是 | 是 | 是 | · | 是 | 是 | 是 | 是 | 是 | · | · | · | · | · |
最大值
| · | · | · | · | · | 是 | 是 | 是 | 是 | · | · | · | · | · | · |
最大长度
| · | 是 | 是 | 是 | 是 | · | · | · | · | · | · | · | · | · | · |
最小值
| · | · | · | · | · | 是 | 是 | 是 | 是 | · | · | · | · | · | · |
最小长度
| · | 是 | 是 | 是 | 是 | · | · | · | · | · | · | · | · | · | · |
多选
| · | · | · | 是 | · | · | · | · | · | · | · | 是 | · | · | · |
模式
| · | 是 | 是 | 是 | 是 | · | · | · | · | · | · | · | · | · | · |
占位符
| · | 是 | 是 | 是 | 是 | · | · | 是 | · | · | · | · | · | · | · |
弹出目标
| · | · | · | · | · | · | · | · | · | · | · | · | 是 | 是 | 是 |
弹出目标动作
| · | · | · | · | · | · | · | · | · | · | · | · | 是 | 是 | 是 |
只读
| · | 是 | 是 | 是 | 是 | 是 | 是 | 是 | · | · | · | · | · | · | · |
必填
| · | 是 | 是 | 是 | 是 | 是 | 是 | 是 | · | · | 是 | 是 | · | · | · |
大小
| · | 是 | 是 | 是 | 是 | · | · | · | · | · | · | · | · | · | · |
源
| · | · | · | · | · | · | · | · | · | · | · | · | · | 是 | · |
步长
| · | · | · | · | · | 是 | 是 | 是 | 是 | · | · | · | · | · | · |
宽度
| · | · | · | · | · | · | · | · | · | · | · | · | · | 是 | · |
IDL 属性和方法 | |||||||||||||||
选中
| · | · | · | · | · | · | · | · | · | · | 是 | · | · | · | · |
文件
| · | · | · | · | · | · | · | · | · | · | · | 是 | · | · | · |
日期值
| · | · | · | · | · | 是 | · | · | · | · | · | · | · | · | · |
数值值
| · | · | · | · | · | 是 | 是 | 是 | 是 | · | · | · | · | · | · |
列表
| · | 是 | 是 | 是 | · | 是 | 是 | 是 | 是 | 是 | · | · | · | · | · |
选择()
| · | 是 | 是 | 是† | 是 | 是† | 是† | 是† | · | 是† | · | 是† | · | · | · |
选择开始
| · | 是 | 是 | · | 是 | · | · | · | · | · | · | · | · | · | · |
选择结束
| · | 是 | 是 | · | 是 | · | · | · | · | · | · | · | · | · | · |
选择方向
| · | 是 | 是 | · | 是 | · | · | · | · | · | · | · | · | · | · |
设置范围文本()
| · | 是 | 是 | · | 是 | · | · | · | · | · | · | · | · | · | · |
设置选择范围()
| · | 是 | 是 | · | 是 | · | · | · | · | · | · | · | · | · | · |
向下步进()
| · | · | · | · | · | 是 | 是 | 是 | 是 | · | · | · | · | · | · |
向上步进()
| · | · | · | · | · | 是 | 是 | 是 | 是 | · | · | · | · | · | · |
事件 | |||||||||||||||
input 事件
| · | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | · | · | · |
change 事件
| · | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | · | · | · |
† 如果控件没有可选择的文本,则select()
方法将执行无操作,不会产生 "InvalidStateError
" DOMException
。
所有当前引擎都支持。
checked
内容属性是一个布尔属性,提供了 input
元素的默认选中状态。
name
属性表示元素的名称。 dirname
属性控制元素的方向性 如何被提交。 disabled
属性用于使控件不可交互,并阻止其值被提交。 form
属性用于显式地将 input
元素与其表单所有者 关联。 autocomplete
属性控制用户代理如何提供自动填充行为。
type
属性的状态type=hidden
)所有当前引擎都支持。
元素 一个不打算被用户检查或操作的值。
如果
属性存在,且其值为 " " 的 匹配,则元素的 属性必须被省略。和 内容属性 于此元素。
default 模式。
IDL 属性 于此元素,并处于以下内容属性不得被指定,且
于此元素: , , , , , , , , , , , , , , , , , , , , , , , , 和 。以下 IDL 属性和方法
于此元素: , , , , , , , 和 IDL 属性; , , , , 和 方法。和 事件 。
type=text
) 状态和 搜索 状态 (type=search
)所有当前引擎都支持。
所有当前引擎都支持。
文本 状态和 搜索 状态之间的主要区别是样式上的区别:在搜索控件与常规文本控件有所区别的平台上,搜索 状态可能导致外观与平台的搜索控件一致,而不是像常规文本控件。
value
属性(如果指定)的值必须不包含 U+000A 换行符 (LF) 或 U+000D 回车符 (CR) 字符。
以下这些常见的 input
元素内容属性、IDL 属性和方法 适用于该元素:autocomplete
、dirname
、list
、maxlength
、minlength
、pattern
、placeholder
、readonly
、required
和 size
内容属性;list
、selectionStart
、selectionEnd
、selectionDirection
和 value
IDL 属性;select()
、setRangeText()
和 setSelectionRange()
方法。
value
IDL 属性处于 value 模式。
以下这些内容属性不应指定且 不适用于该元素:accept
、alt
、checked
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、max
、min
、multiple
、popovertarget
、popovertargetaction
、src
、step
和 width
。
以下 IDL 属性和方法 不适用于该元素:checked
、files
、valueAsDate
和 valueAsNumber
IDL 属性;stepDown()
和 stepUp()
方法。
type=tel
)所有当前引擎都支持。
input
元素 表示一个控件,用于编辑元素 value 中给出的电话号码。
如果指定 value
属性,则其值必须不包含 U+000A LINE FEED (LF) 或 U+000D CARRIAGE RETURN (CR) 字符。
与 URL 和 电子邮件 类型不同,电话 类型不强制执行特定语法。这是故意的;在实践中,电话号码字段往往是自由格式字段,因为有效的电话号码有很多种。需要强制执行特定格式的系统应使用 pattern
属性或 setCustomValidity()
方法挂钩到客户端验证机制。
以下这些常见的 input
元素内容属性、IDL 属性和方法 适用于该元素:autocomplete
、dirname
、list
、maxlength
、minlength
、pattern
、placeholder
、readonly
、required
和 size
内容属性;list
、selectionStart
、selectionEnd
、selectionDirection
和 value
IDL 属性;select()
、setRangeText()
和 setSelectionRange()
方法。
value
IDL 属性处于 value 模式。
以下这些内容属性不应指定且 不适用于该元素:accept
、alt
、checked
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、max
、min
、multiple
、popovertarget
、popovertargetaction
、src
、step
和 width
。
以下 IDL 属性和方法 不适用于该元素:checked
、files
、valueAsDate
和 valueAsNumber
IDL 属性;stepDown()
和 stepUp()
方法。
type=url
)所有当前引擎都支持。
input
元素 表示一个控件,用于编辑元素 value 中给出的单个 绝对 URL。
如果指定 value
属性且不为空,则其值必须是 有效的 URL(可能被空格包围),该 URL 也是一个 绝对 URL。
以下常见的输入
元素内容属性、IDL 属性和方法适用于该元素:autocomplete
、dirname
、list
、maxlength
、minlength
、pattern
、placeholder
、readonly
、required
和size
内容属性;list
、selectionStart
、selectionEnd
、selectionDirection
和value
IDL 属性;select()
、setRangeText()
和setSelectionRange()
方法。
该value
IDL 属性处于value模式。
以下内容属性不得指定,且不适用于该元素:accept
、alt
、checked
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、max
、min
、multiple
、popovertarget
、popovertargetaction
、src
、step
和width
。
以下IDL 属性和方法不适用于该元素:checked
、files
、valueAsDate
和valueAsNumber
IDL 属性;stepDown()
和stepUp()
方法。
如果文档包含以下标记
< input type = "url" name = "location" list = "urls" >
< datalist id = "urls" >
< option label = "MIME: Format of Internet Message Bodies" value = "https://www.rfc-editor.org/rfc/rfc2045" >
< option label = "HTML" value = "https://html.whatwg.com.cn/" >
< option label = "DOM" value = "https://dom.spec.whatwg.org/" >
< option label = "Fullscreen" value = "https://fullscreen.spec.whatwg.org/" >
< option label = "Media Session" value = "https://mediasession.spec.whatwg.org/" >
< option label = "The Single UNIX Specification, Version 3" value = "http://www.unix.org/version3/" >
</ datalist >
… 并且用户输入了“spec.w”,并且用户代理还发现用户最近访问了 https://url.spec.whatwg.org/#url-parsing
和 https://streams.spec.whatwg.org/
,那么渲染可能如下所示
此示例中的前四个 URL 由作者指定的列表中与用户输入的文本匹配的四个 URL 组成,并以某种实现定义方式排序(可能按用户访问这些 URL 的频率)。注意,UA 使用了对值的 URL 了解来允许用户省略方案部分,并对域名执行智能匹配。
最后两个 URL(以及可能还有更多,因为滚动条表明还有更多值可用)是来自用户代理的会话历史记录数据的匹配。这些数据不会提供给页面 DOM。在这种特殊情况下,UA 没有标题可用于这些值。
type=email
)所有当前引擎都支持。
该电子邮件状态的操作方式取决于是否指定了multiple
属性。
multiple
属性未在元素上指定时multiple
属性是在元素上指定时该输入
元素表示一个用于添加、删除和编辑元素的values中给出的电子邮件地址的控件。
该value
属性,如果指定,则必须具有有效电子邮件地址列表的值。
当multiple
属性设置或删除时,用户代理必须运行值清理算法。
有效电子邮件地址是一个与以下 ABNF 的 email
产生式匹配的字符串,其字符集为 Unicode。此 ABNF 实现了 RFC 1123 中描述的扩展。 [ABNF] [RFC5322] [RFC1034] [RFC1123]
email = 1* ( atext / "." ) "@" label * ( "." label )
label = let-dig [ [ ldh-str ] let-dig ] ; limited to a length of 63 characters by RFC 1034 section 3.5
atext = < as defined in RFC 5322 section 3 .2 .3 >
let-dig = < as defined in RFC 1034 section 3 .5 >
ldh-str = < as defined in RFC 1034 section 3 .5 >
此要求是对 RFC 5322 的有意违反,RFC 5322 定义了电子邮件地址的语法,该语法既过于严格(在“@”字符之前),又过于模糊(在“@”字符之后),并且过于宽松(允许以大多数用户不熟悉的方式使用注释、空格字符和引号字符串),无法在此处实际使用。
以下 JavaScript 和 Perl 兼容的正则表达式是上述定义的实现。
/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
有效电子邮件地址列表是一个逗号分隔的标记集,其中每个标记本身都是一个有效电子邮件地址。
以下常见的输入
元素内容属性、IDL 属性和方法适用于该元素:autocomplete
、dirname
、list
、maxlength
、minlength
、multiple
、pattern
、placeholder
、readonly
、required
和size
内容属性;list
和value
IDL 属性;select()
方法。
该value
IDL 属性处于value模式。
以下内容属性不得指定,且不适用于该元素:accept
、alt
、checked
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、max
、min
、popovertarget
、popovertargetaction
、src
、step
和width
。
以下 IDL 属性和方法不适用于该元素:checked
,files
,selectionStart
,selectionEnd
,selectionDirection
,valueAsDate
,和valueAsNumber
IDL 属性;setRangeText()
,setSelectionRange()
,stepDown()
和stepUp()
方法。
type=password
)所有当前引擎都支持。
输入
元素表示该元素值的一行纯文本编辑控件。用户代理应遮蔽该值,以使除用户以外的人无法看到它。
value
属性(如果指定)必须具有一个不包含 U+000A 换行符 (LF) 或 U+000D 回车符 (CR) 字符的值。
以下常见的输入
元素内容属性、IDL 属性和方法适用于该元素:autocomplete
,dirname
,maxlength
,minlength
,pattern
,placeholder
,readonly
,required
,和size
内容属性;selectionStart
,selectionEnd
,selectionDirection
,和value
IDL 属性;select()
,setRangeText()
,和setSelectionRange()
方法。
value
IDL 属性处于 value 模式。
以下内容属性不得指定,也不适用于该元素:accept
,alt
,checked
,formaction
,formenctype
,formmethod
,formnovalidate
,formtarget
,height
,list
,max
,min
,multiple
,popovertarget
,popovertargetaction
,src
,step
,和width
。
以下 IDL 属性和方法不适用于该元素:checked
,files
,list
,valueAsDate
,和valueAsNumber
IDL 属性;stepDown()
和stepUp()
方法。
type=date
)所有当前引擎都支持。
输入
元素表示用于将该元素的值设置为表示特定日期的字符串的控件。
有关日期、时间和数字表单控件的输入格式和提交格式之间差异的讨论,请参见简介部分。
value
属性(如果指定并且不为空)必须具有有效的日期字符串的值。
min
属性(如果指定)必须具有有效的日期字符串的值。max
属性(如果指定)必须具有有效的日期字符串的值。
step
属性以天为单位表示。默认步长为 1 天。
日期 状态(以及后续部分中描述的其他日期和时间相关状态)并非旨在输入无法确定相对于当代日历的精确日期和时间的那些值。例如,它不适合输入诸如“大爆炸后一毫秒”、“侏罗纪早期”或“公元前 250 年左右的冬季”等时间。
对于输入格里高利历引入之前的日期,作者应尽量避免使用日期 状态(以及后续部分中描述的其他日期和时间相关状态),因为用户代理并非必须支持将早期时期的日期和时间转换为格里高利历,而要求用户手动执行此操作会给用户带来过多的负担。(格里高利历的引入方式很复杂,在不同国家/地区的引入时间也不同,从 16 世纪中叶一直到 20 世纪初。)相反,作者应尽量使用具有数字 状态的select
元素和input
元素提供细粒度的输入控件。
以下常见的输入
元素内容属性、IDL 属性和方法适用于该元素:autocomplete
,list
,max
,min
,readonly
,required
,和step
内容属性;list
,value
,valueAsDate
,和valueAsNumber
IDL 属性;select()
,stepDown()
,和stepUp()
方法。
value
IDL 属性处于 value 模式。
以下内容属性不得指定,并且不适用于该元素:accept
,alt
,checked
,dirname
,formaction
,formenctype
,formmethod
,formnovalidate
,formtarget
,height
,maxlength
,minlength
,multiple
,pattern
,placeholder
,popovertarget
,popovertargetaction
,size
,src
,以及width
。
以下 IDL 属性和方法不适用于该元素:checked
,selectionStart
,selectionEnd
,以及selectionDirection
IDL 属性;setRangeText()
,以及setSelectionRange()
方法。
type=month
)所有当前引擎都支持。
该输入
元素表示一个控件,用于将元素的值设置为表示特定月份的字符串。
有关日期、时间和数字表单控件的输入格式和提交格式之间差异的讨论,请参见简介部分。
如果指定了value
属性并且它不为空,则它的值必须是一个有效的月字符串。
如果指定了min
属性,则它的值必须是一个有效的月字符串。如果指定了max
属性,则它的值必须是一个有效的月字符串。
step
属性以月为单位表示。默认步长为 1 个月。
以下常见的输入
元素内容属性、IDL 属性和方法适用于该元素:autocomplete
,list
,max
,min
,readonly
,required
,以及step
内容属性;list
,value
,valueAsDate
,以及valueAsNumber
IDL 属性;select()
,stepDown()
,以及stepUp()
方法。
该value
IDL 属性处于 value 模式。
以下内容属性不得指定,并且不适用于该元素:accept
,alt
,checked
,dirname
,formaction
,formenctype
,formmethod
,formnovalidate
,formtarget
,height
,maxlength
,minlength
,multiple
,pattern
,placeholder
,popovertarget
,popovertargetaction
,size
,src
,以及width
。
以下 IDL 属性和方法不适用于该元素:checked
,files
,selectionStart
,selectionEnd
,以及selectionDirection
IDL 属性;setRangeText()
,以及setSelectionRange()
方法。
type=week
)该输入
元素表示一个控件,用于将元素的值设置为表示特定周的字符串。
有关日期、时间和数字表单控件的输入格式和提交格式之间差异的讨论,请参见简介部分。
如果指定了value
属性并且它不为空,则它的值必须是一个有效的周字符串。
如果指定了min
属性,则它的值必须是一个有效的周字符串。如果指定了max
属性,则它的值必须是一个有效的周字符串。
step
属性以周为单位表示。默认步长为 1 个周。
以下常见的输入
元素内容属性、IDL 属性和方法适用于该元素:autocomplete
,list
,max
,min
,readonly
,required
,以及step
内容属性;list
,value
,valueAsDate
,以及valueAsNumber
IDL 属性;select()
,stepDown()
,以及stepUp()
方法。
该value
IDL 属性处于 value 模式。
以下内容属性不得指定,并且不适用于此元素:accept
、alt
、checked
、dirname
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、maxlength
、minlength
、multiple
、pattern
、placeholder
、popovertarget
、popovertargetaction
、size
、src
以及 width
。
以下 IDL 属性和方法不适用于此元素:checked
、files
、selectionStart
、selectionEnd
以及 selectionDirection
IDL 属性;setRangeText()
以及 setSelectionRange()
方法。
type=time
)所有当前引擎都支持。
The input
元素表示一个控件,用于将元素的值设置为一个字符串,该字符串表示一个特定的时间。
有关日期、时间和数字表单控件的输入格式和提交格式之间差异的讨论,请参见简介部分。
如果指定了value
属性,并且它不为空,则它的值必须是一个有效的 time 字符串。
如果指定了min
属性,则它的值必须是一个有效的 time 字符串。如果指定了max
属性,则它的值必须是一个有效的 time 字符串。
step
属性以秒为单位。默认步长为 60 秒。
以下常见的input
元素内容属性、IDL 属性和方法适用于此元素:autocomplete
、list
、max
、min
、readonly
、required
以及 step
内容属性;list
、value
、valueAsDate
以及 valueAsNumber
IDL 属性;select()
、stepDown()
以及 stepUp()
方法。
value
IDL 属性处于值模式。
以下内容属性不得指定,并且不适用于此元素:accept
、alt
、checked
、dirname
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、maxlength
、minlength
、multiple
、pattern
、placeholder
、popovertarget
、popovertargetaction
、size
、src
以及 width
。
以下 IDL 属性和方法不适用于此元素:checked
、files
、selectionStart
、selectionEnd
以及 selectionDirection
IDL 属性;setRangeText()
以及 setSelectionRange()
方法。
type=datetime-local
)所有当前引擎都支持。
The input
元素表示一个控件,用于将元素的值设置为一个字符串,该字符串表示一个本地日期和时间,不包含时区偏移信息。
有关日期、时间和数字表单控件的输入格式和提交格式之间差异的讨论,请参见简介部分。
如果指定了value
属性,并且它不为空,则它的值必须是一个有效的本地日期和时间字符串。
如果指定了min
属性,则它的值必须是一个有效的本地日期和时间字符串。如果指定了max
属性,则它的值必须是一个有效的本地日期和时间字符串。
step
属性以秒为单位。默认步长为 60 秒。
以下常见的input
元素内容属性、IDL 属性和方法适用于此元素:autocomplete
、list
、max
、min
、readonly
、required
以及 step
内容属性;list
、value
以及 valueAsNumber
IDL 属性;select()
、stepDown()
以及 stepUp()
方法。
value
IDL 属性处于值模式。
以下内容属性不得指定,并且不适用于此元素:accept
、alt
、checked
、dirname
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、maxlength
、minlength
、multiple
、pattern
、placeholder
、popovertarget
、popovertargetaction
、size
、src
,以及width
。
以下IDL属性和方法不适用于此元素:checked
、files
、selectionStart
、selectionEnd
、selectionDirection
,以及valueAsDate
IDL属性;setRangeText()
,以及setSelectionRange()
方法。
以下示例显示了航班预订应用程序的一部分。该应用程序使用一个input
元素,其type
属性设置为datetime-local
,然后它在所选机场的时区解释给定的日期和时间。
< fieldset >
< legend > Destination</ legend >
< p >< label > Airport: < input type = text name = to list = airports ></ label ></ p >
< p >< label > Departure time: < input type = datetime-local name = totime step = 3600 ></ label ></ p >
</ fieldset >
< datalist id = airports >
< option value = ATL label = "Atlanta" >
< option value = MEM label = "Memphis" >
< option value = LHR label = "London Heathrow" >
< option value = LAX label = "Los Angeles" >
< option value = FRA label = "Frankfurt" >
</ datalist >
type=number
)所有当前引擎都支持。
该input
元素表示一个用于将元素的value设置为表示数字的字符串的控件。
本规范没有定义用户代理应使用什么用户界面;鼓励用户代理供应商考虑最适合其用户需求的方法。例如,在波斯语或阿拉伯语市场中的用户代理可能支持波斯语和阿拉伯语数字输入(将其转换为如上所述提交所需的格式)。类似地,为罗马人设计的用户代理可能会以罗马数字而不是十进制显示值;或者(更现实地)为法国市场设计的用户代理可能会以千位分隔符和十进制分隔符(例如,在千位之间使用撇号,在小数点前使用逗号)显示值,并允许用户以这种方式输入值,并在内部将其转换为如上所述的提交格式。
如果指定了value
属性且它不为空,则它必须具有一个有效的浮点数的值。
如果指定了min
属性,则它必须具有一个有效的浮点数的值。如果指定了max
属性,则它必须具有一个有效的浮点数的值。
默认步长为1(除非步长基数具有非整数值,否则只允许用户选择整数)。
以下常见的input
元素内容属性、IDL属性和方法适用于此元素:autocomplete
、list
、max
、min
、placeholder
、readonly
、required
,以及step
内容属性;list
、value
,以及valueAsNumber
IDL属性;select()
、stepDown()
,以及stepUp()
方法。
该value
IDL属性处于value模式。
以下内容属性不得指定,并且不适用于此元素:accept
、alt
、checked
、dirname
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、maxlength
、minlength
、multiple
、pattern
、popovertarget
、popovertargetaction
、size
、src
,以及width
。
以下IDL属性和方法不适用于此元素:checked
、files
、selectionStart
、selectionEnd
、selectionDirection
,以及valueAsDate
IDL属性;setRangeText()
,以及setSelectionRange()
方法。
以下是使用数字输入控件的示例
< label > How much do you want to charge? $< input type = number min = 0 step = 0.01 name = price ></ label >
如上所述,用户代理可能会支持以用户的本地格式进行数字输入,并将其转换为如上所述提交所需的格式。这可能包括处理分组分隔符(如“872,000,000,000”)和各种小数分隔符(如“3,99”与“3.99”),或使用本地数字(如阿拉伯语、天城体、波斯语和泰语中的数字)。
该type=number
状态不适合仅包含数字但严格来说不是数字的输入。例如,它不适合信用卡号或美国邮政编码。确定是否使用type=number
的一种简单方法是考虑输入控件是否适合使用旋转框界面(例如,带有“向上”和“向下”箭头)。将信用卡号的最后一位数字输错1位不是小错误,它与输错所有数字一样错误。因此,使用“向上”和“向下”按钮选择信用卡号是没有意义的。当旋转框界面不合适时,type=text
可能是正确的选择(可能带有inputmode
或pattern
属性)。
type=range
)所有当前引擎都支持。
该input
元素表示一个用于将元素的value设置为表示数字的字符串的控件,但有一个需要注意的地方,即确切的值并不重要,可以让UA提供比数字状态更简单的界面。
如果指定了value
属性,则它必须具有一个有效的浮点数的值。
该默认值是最小值加上最小值与最大值之间差值的一半,除非最大值小于最小值,在这种情况下,该默认值是最小值.
这是一个使用自动完成列表的范围控件示例,使用 list
属性。这在控件的整个范围内有特别重要的值时可能很有用,例如在用作速度控制的范围控件中预先配置的光照水平或典型的速度限制。以下标记片段
< input type = "range" min = "-100" max = "100" value = "0" step = "10" name = "power" list = "powers" >
< datalist id = "powers" >
< option value = "0" >
< option value = "-30" >
< option value = "30" >
< option value = "++50" >
</ datalist >
...应用以下样式表
input { writing-mode : vertical-lr; height : 75 px ; width : 49 px ; background : #D5CCBB; color : black; }
...可能呈现为
注意 UA 如何从样式表指定的 height 和 width 属性的比率确定控件的方向。颜色也类似地从样式表中获取。但是,刻度标记是从标记中获取的。特别是,step
属性没有影响刻度标记的放置,UA 决定只使用作者指定的完成值,然后在极端值处添加更长的刻度标记。
还要注意无效值 ++50
被忽略了。
另一个例子,请考虑以下标记片段
< input name = x type = range min = 100 max = 700 step = 9.09090909 value = 509.090909 >
用户代理可以用多种方式显示,例如
或者,另外,例如
用户代理可以根据样式表中给出的尺寸选择要显示的哪一个。这将使它能够保持刻度标记的相同分辨率,尽管宽度不同。
最后,这是一个带有两个标记值的范围控件的示例
< input type = "range" name = "a" list = "a-values" >
< datalist id = "a-values" >
< option value = "10" label = "Low" >
< option value = "90" label = "High" >
</ datalist >
使用使控件垂直绘制的样式,它可能如下所示
在这种状态下,即使在用户输入期间也会强制执行范围和步长约束,并且无法将值设置为空字符串。
如果指定了 min
属性,则其值必须是 有效的浮点数。默认最小值 为 0。如果指定了 max
属性,则其值必须是 有效的浮点数。默认最大值 为 100。
默认步长 为 1(仅允许整数,除非 min
属性具有非整数值)。
以下常见 input
元素内容属性、IDL 属性和方法 应用 于该元素:autocomplete
、list
、max
、min
和 step
内容属性;list
、value
和 valueAsNumber
IDL 属性;stepDown()
和 stepUp()
方法。
value
IDL 属性处于 value 模式。
以下内容属性不得指定,并且 不应用 于该元素:accept
、alt
、checked
、dirname
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、maxlength
、minlength
、multiple
、pattern
、placeholder
、popovertarget
、popovertargetaction
、readonly
、required
、size
、src
和 width
。
以下 IDL 属性和方法 不应用 于该元素:checked
、files
、selectionStart
、selectionEnd
、selectionDirection
和 valueAsDate
IDL 属性;select()
、setRangeText()
和 setSelectionRange()
方法。
type=color
)所有当前引擎都支持。
input
元素 表示 一个颜色井控件,用于将元素的 值 设置为表示 简单颜色 的字符串。
如果指定了 value
属性并且不为空,则其值必须是 有效的简单颜色。
以下常见 input
元素内容属性和 IDL 属性 应用 于该元素:autocomplete
和 list
内容属性;list
和 value
IDL 属性;select()
方法。
value
IDL 属性处于 value 模式。
以下内容属性不得指定,并且 不应用 于该元素:accept
、alt
、checked
、dirname
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、max
、maxlength
、min
、minlength
、multiple
、pattern
、placeholder
、popovertarget
、popovertargetaction
、readonly
、required
、size
、src
、step
和 width
。
以下 IDL 属性和方法 不应用 于该元素:checked
、files
、selectionStart
、selectionEnd
、selectionDirection
、valueAsDate
和 valueAsNumber
IDL 属性;setRangeText()
、setSelectionRange()
、stepDown()
和 stepUp()
方法。
type=checkbox
)所有当前引擎都支持。
The input
元素 表示 一个双状态控件,代表元素的 选中状态。 如果元素的 选中状态 为真,则控件表示正向选择;如果为假,则表示负向选择。 如果元素的 indeterminate
IDL 属性设置为真,则控件的选择应被隐藏,就好像控件处于第三种不确定的状态一样。
即使元素的 indeterminate
IDL 属性设置为真,控件也永远不会是真正的三态控件。 indeterminate
IDL 属性只提供了第三种状态的外观。
input.indeterminate [ = value ]
HTMLInputElement#indeterminate
所有当前引擎都支持。
设置后,将覆盖 复选框 控件的渲染,使当前值不可见。
以下常见 input
元素内容属性和 IDL 属性 适用于 该元素: checked
和 required
内容属性; checked
和 value
IDL 属性。
The value
IDL 属性处于 default/on 模式。
The input
和 change
事件 适用于 该元素。
以下内容属性不能被指定,并且 不适用于 该元素: accept
, alt
, autocomplete
, dirname
, formaction
, formenctype
, formmethod
, formnovalidate
, formtarget
, height
, list
, max
, maxlength
, min
, minlength
, multiple
, pattern
, placeholder
, popovertarget
, popovertargetaction
, readonly
, size
, src
, step
和 width
.
以下 IDL 属性和方法 不适用于 该元素: files
, list
, selectionStart
, selectionEnd
, selectionDirection
, valueAsDate
和 valueAsNumber
IDL 属性; select()
, setRangeText()
, setSelectionRange()
, stepDown()
和 stepUp()
方法。
type=radio
)所有当前引擎都支持。
The input
元素 表示 一个控件,当与其他 input
元素一起使用时,会形成一个 单选按钮组,其中只有一个控件的 选中状态 可以设置为真。 如果元素的 选中状态 为真,则该控件表示该组中选中的控件;如果为假,则表示该组中未选中的控件。
包含 input
元素 a 的 单选按钮组 还包含所有其他 input
元素 b,它们满足以下所有条件
input
元素 b 的 type
属性处于 单选按钮 状态。name
属性,它们的 name
属性不为空,并且 a 的 name
属性的值等于 b 的 name
属性的值。一个 树 不得包含一个 input
元素,其 单选按钮组 仅包含该元素。
如果 单选按钮组 中的单选按钮均未选中,则它们在界面中将全部处于初始未选中状态,直到其中一个被选中(通过用户或脚本)。
以下常见 input
元素内容属性和 IDL 属性 适用于 该元素: checked
和 required
内容属性; checked
和 value
IDL 属性。
The value
IDL 属性处于 default/on 模式。
The input
和 change
事件 适用于 该元素。
以下内容属性不能被指定,并且 不适用于 该元素: accept
, alt
, autocomplete
, dirname
, formaction
, formenctype
, formmethod
, formnovalidate
, formtarget
, height
, list
, max
, maxlength
, min
, minlength
, multiple
, pattern
, placeholder
, popovertarget
, popovertargetaction
, readonly
, size
, src
, step
和 width
.
以下 IDL 属性和方法不适用于该元素:files
、list
、selectionStart
、selectionEnd
、selectionDirection
、valueAsDate
和 valueAsNumber
IDL 属性;select()
、setRangeText()
、setSelectionRange()
、stepDown()
和 stepUp()
方法。
type=file
)所有当前引擎都支持。
该input
元素代表一个已选择文件列表,每个文件都包含文件名、文件类型和文件主体(文件内容)。
所有当前引擎都支持。
所有当前引擎都支持。
该accept
属性可用于向用户代理提供有关将接受哪些文件类型的提示。
如果指定了该属性,它必须包含一个逗号分隔的标记集,其中每个标记都必须与以下内容之一进行不区分大小写匹配:
audio/*
"video/*
"image/*
"这些标记不能与任何其他标记进行不区分大小写匹配(即不允许重复)。
用户代理可以使用此属性的值来显示比通用文件选择器更合适的用户界面。例如,如果值为 image/*
,则用户代理可以向用户提供使用本地摄像头或从照片库中选择照片的选项;如果值为 audio/*
,则用户代理可以向用户提供使用耳机麦克风录制音频片段的选项。
鼓励作者在查找特定格式的数据时同时指定任何 MIME 类型和任何相应的扩展名。
例如,考虑一个将 Microsoft Word 文档转换为 Open Document Format 文件的应用程序。由于 Microsoft Word 文档是用各种 MIME 类型和扩展名描述的,因此该站点可以列出几个,如下所示:
< input type = "file" accept = ".doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document" >
在仅使用文件扩展名描述文件类型的平台上,此处列出的扩展名可用于筛选允许的文档,而 MIME 类型可与系统的类型注册表(将 MIME 类型映射到系统使用的扩展名)一起使用,如果有的话,以确定允许的任何其他扩展名。类似地,在没有文件名或扩展名,而是使用 MIME 类型在内部标记文档的系统上,MIME 类型可用于选择允许的文件,而扩展名可在系统具有扩展名注册表的情况下使用,该注册表将已知的扩展名映射到系统使用的 MIME 类型。
扩展名往往是模棱两可的(例如,使用 ".dat
" 扩展名的格式不计其数,用户通常可以很容易地将他们的文件重命名为具有 ".doc
" 扩展名,即使它们不是 Microsoft Word 文档),而 MIME 类型往往不可靠(例如,许多格式没有正式注册的类型,许多格式实际上使用多种不同的 MIME 类型进行标记)。作者应记住,与往常一样,应谨慎对待从客户端接收的数据,因为它可能不是预期的格式,即使用户并非恶意,用户代理也完全遵守了accept
属性的要求。
出于历史原因,value
IDL 属性在文件名之前添加字符串 "C:\fakepath\
"。一些旧版用户代理实际上包含了完整的路径(这是一种安全漏洞)。因此,以向后兼容的方式从 value
IDL 属性中获取文件名并非易事。以下函数以一种适当兼容的方式提取文件名:
function extractFilename( path) {
if ( path. substr( 0 , 12 ) == "C:\\fakepath\\" )
return path. substr( 12 ); // modern browser
var x;
x = path. lastIndexOf( '/' );
if ( x >= 0 ) // Unix-based path
return path. substr( x+ 1 );
x = path. lastIndexOf( '\\' );
if ( x >= 0 ) // Windows-based path
return path. substr( x+ 1 );
return path; // just the filename
}
这可以按如下方式使用:
< p >< input type = file name = image onchange = "updateFilename(this.value)" ></ p >
< p > The name of the file you picked is: < span id = "filename" > (none)</ span ></ p >
< script >
function updateFilename( path) {
var name = extractFilename( path);
document. getElementById( 'filename' ). textContent = name;
}
</ script >
以下常见input
元素内容属性和 IDL 属性适用于该元素:accept
、multiple
和 required
内容属性;files
和 value
IDL 属性;select()
方法。
该 value
IDL 属性处于 filename 模式。
以下内容属性不得指定,并且不适用于该元素:alt
、autocomplete
、checked
、dirname
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、list
、max
、maxlength
、min
、minlength
、pattern
、popovertarget
、popovertargetaction
、placeholder
、readonly
、size
、src
、step
和 width
。
该元素的value
属性必须省略。
以下 IDL 属性和方法不适用于该元素:checked
、list
、selectionStart
、selectionEnd
、selectionDirection
、valueAsDate
和 valueAsNumber
IDL 属性;setRangeText()
、setSelectionRange()
、stepDown()
和 stepUp()
方法。
type=submit
)所有当前引擎都支持。
该input
元素代表一个按钮,当激活时会提交表单。该元素是一个按钮,具体来说是一个提交按钮。
由于默认标签是由实现定义的,而按钮的宽度通常取决于按钮的标签,因此按钮的宽度可能会泄露一些可指纹化的信息。这些信息很可能与用户代理的身份和用户的区域设置密切相关。
formaction
、formenctype
、formmethod
、formnovalidate
和 formtarget
属性是表单提交属性。
可以使用 formnovalidate
属性来创建不会触发约束验证的提交按钮。
以下常见 input
元素内容属性和 IDL 属性应用于该元素:dirname
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、popovertarget
和 popovertargetaction
内容属性;value
IDL 属性。
value
IDL 属性处于默认模式。
以下内容属性不得指定,并且不适用于该元素:accept
、alt
、autocomplete
、checked
、height
、list
、max
、maxlength
、min
、minlength
、multiple
、pattern
、placeholder
、readonly
、required
、size
、src
、step
和 width
。
以下 IDL 属性和方法不适用于该元素:checked
、files
、list
、selectionStart
、selectionEnd
、selectionDirection
、valueAsDate
和 valueAsNumber
IDL 属性;select()
、setRangeText()
、setSelectionRange()
、stepDown()
和 stepUp()
方法。
type=image
)所有当前引擎都支持。
input
元素表示 用户可以选择坐标并提交表单的图像,或者表示用户可以提交表单的按钮。该元素是一个按钮,更具体地说,是一个提交按钮。
坐标通过发送两个元素条目发送到服务器表单提交期间,这些条目来自控件的名称,但在名称后面附加了 ".x
" 和 ".y
",分别对应坐标的 x 和 y 分量。
所有当前引擎都支持。
图像由src
属性给出。 src
属性必须存在,并且必须包含一个有效的非空 URL,可能包含空格,引用非交互式、可选动画的图像资源,该资源既不分页也不带脚本。
所有当前引擎都支持。
alt
属性为按钮提供文本标签,供无法使用图像的用户和用户代理使用。 alt
属性必须存在,并且必须包含一个非空字符串,该字符串给出如果图像不可用则等效按钮的标签。
如果 src
属性已设置,并且图像可用,并且用户代理配置为显示该图像,则该元素表示 用于从 src
属性指定的图像中选择坐标的控件。在这种情况下,如果该元素是可变的,则用户代理应允许用户选择此坐标。
否则,该元素表示 提交按钮,其标签由 alt
属性的值给出。
formaction
、formenctype
、formmethod
、formnovalidate
和 formtarget
属性是表单提交属性。
image.width [ = value ]
image.height [ = value ]
这些属性返回图像的实际渲染尺寸,如果尺寸未知,则返回 0。
它们可以被设置,以更改相应的属性内容。
以下常见 input
元素内容属性和 IDL 属性应用于该元素:alt
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
、popovertarget
、popovertargetaction
、src
和 width
内容属性;value
IDL 属性。
value
IDL 属性处于默认模式。
以下内容属性不得指定,并且不适用于该元素:accept
、autocomplete
、checked
、dirname
、list
、max
、maxlength
、min
、minlength
、multiple
、pattern
、placeholder
、readonly
、required
、size
和 step
。
元素的 value
属性必须省略。
以下 IDL 属性和方法不适用于该元素:checked
,files
,list
,selectionStart
,selectionEnd
,selectionDirection
,valueAsDate
,以及 valueAsNumber
IDL 属性;select()
,setRangeText()
,setSelectionRange()
,stepDown()
,以及 stepUp()
方法。
该状态的许多行为方面与 img
元素的行为类似。鼓励读者阅读该部分,其中许多相同的要求以更详细的方式描述。
以下表单
< form action = "process.cgi" >
< input type = image src = map.png name = where alt = "Show location list" >
</ form >
如果用户在坐标 (127,40) 处单击图像,则用于提交表单的 URL 将为 "process.cgi?where.x=127&where.y=40
"。
(在本示例中,假设对于看不到地图的用户,他们只看到一个标记为“显示位置列表”的按钮,单击该按钮将导致服务器显示一个位置列表以供选择,而不是地图。)
type=reset
)所有当前引擎都支持。
The input
元素代表一个按钮,当激活时,重置表单。该元素是一个按钮。
由于默认标签是实现定义的,并且按钮的宽度通常取决于按钮的标签,因此按钮的宽度可能会泄露一些指纹信息。这些信息很可能与用户代理的身份和用户的语言环境高度相关。
The value
IDL 属性适用于该元素,并且处于 default 模式。
以下常见 input
元素内容属性适用于该元素:popovertarget
和 popovertargetaction
。
以下内容属性不得指定,并且不适用于该元素:accept
,alt
,autocomplete
,checked
,dirname
,formaction
,formenctype
,formmethod
,formnovalidate
,formtarget
,height
,list
,max
,maxlength
,min
,minlength
,multiple
,pattern
,placeholder
,readonly
,required
,size
,src
,step
,以及 width
。
以下 IDL 属性和方法不适用于该元素:checked
,files
,list
,selectionStart
,selectionEnd
,selectionDirection
,valueAsDate
,以及 valueAsNumber
IDL 属性;select()
,setRangeText()
,setSelectionRange()
,stepDown()
,以及 stepUp()
方法。
type=button
)所有当前引擎都支持。
The input
元素代表一个没有默认行为的按钮。必须在 value
属性中提供按钮的标签,尽管它可能是空字符串。该元素是一个按钮。
The value
IDL 属性适用于该元素,并且处于 default 模式。
以下常见 input
元素内容属性适用于该元素:popovertarget
和 popovertargetaction
。
以下内容属性不得指定,并且不适用于该元素:accept
,alt
,autocomplete
,checked
,dirname
,formaction
,formenctype
,formmethod
,formnovalidate
,formtarget
,height
,list
,max
,maxlength
,min
,minlength
,multiple
,pattern
,placeholder
,readonly
,required
,size
,src
,step
,以及 width
。
以下 IDL 属性和方法不适用于该元素:checked
,files
,list
,selectionStart
,selectionEnd
,selectionDirection
,valueAsDate
,以及 valueAsNumber
IDL 属性;select()
,setRangeText()
,setSelectionRange()
,stepDown()
,以及 stepUp()
方法。
input
元素属性maxlength
和 minlength
属性所有当前引擎都支持。
所有当前引擎都支持。
所有当前引擎都支持。
所有当前引擎都支持。
所有当前引擎都支持。
maxlength
属性是 表单控件 maxlength
属性。
所有当前引擎都支持。
minlength
属性是 表单控件 minlength
属性。
如果 input
元素具有 允许的最大值长度,则元素的 value
属性值的 长度 必须小于或等于元素的 允许的最大值长度。
以下摘录展示了如何将消息客户端的文本输入任意限制为固定数量的字符,从而迫使通过此媒介进行的任何对话都简短并阻止智能的讨论。
< label > What are you doing? < input name = status maxlength = 140 ></ label >
这里,密码被赋予了最小长度
< p >< label > Username: < input name = u required ></ label >
< p >< label > Password: < input name = p required minlength = 12 ></ label >
size
属性size
属性指定在视觉渲染中,用户代理允许用户在编辑元素的 value 时看到的字符数。
如果指定了 size
属性,则其值必须是大于零的 有效非负整数。
readonly
属性所有当前引擎都支持。
所有当前引擎都支持。
所有当前引擎都支持。
readonly
属性是 布尔属性,用于控制用户是否可以编辑表单控件。
disabled
和 readonly
之间的区别在于,只读控件仍然可以正常工作,而禁用控件通常无法作为控件工作,直到它们被启用。本规范中其他地方更详细地说明了这一点,其中包含规范性要求,这些要求引用了 disabled 概念(例如,元素的 激活行为,它是否是 可聚焦区域,或是在 构建条目列表 时)。与禁用控件的用户交互相关的任何其他行为,例如是否可以选择或复制文本,在本标准中没有定义。
只有文本控件可以设置为只读,因为对于其他控件(如复选框和按钮),没有只读和禁用的有用区别,因此 readonly
属性 不适用。
在以下示例中,现有的产品标识符不能修改,但它们仍然作为表单的一部分显示,以与代表新产品的行(其中标识符尚未填写)保持一致。
< form action = "products.cgi" method = "post" enctype = "multipart/form-data" >
< table >
< tr > < th > Product ID < th > Product name < th > Price < th > Action
< tr >
< td > < input readonly = "readonly" name = "1.pid" value = "H412" >
< td > < input required = "required" name = "1.pname" value = "Floor lamp Ulke" >
< td > $< input required = "required" type = "number" min = "0" step = "0.01" name = "1.pprice" value = "49.99" >
< td > < button formnovalidate = "formnovalidate" name = "action" value = "delete:1" > Delete</ button >
< tr >
< td > < input readonly = "readonly" name = "2.pid" value = "FG28" >
< td > < input required = "required" name = "2.pname" value = "Table lamp Ulke" >
< td > $< input required = "required" type = "number" min = "0" step = "0.01" name = "2.pprice" value = "24.99" >
< td > < button formnovalidate = "formnovalidate" name = "action" value = "delete:2" > Delete</ button >
< tr >
< td > < input required = "required" name = "3.pid" value = "" pattern = "[A-Z0-9]+" >
< td > < input required = "required" name = "3.pname" value = "" >
< td > $< input required = "required" type = "number" min = "0" step = "0.01" name = "3.pprice" value = "" >
< td > < button formnovalidate = "formnovalidate" name = "action" value = "delete:3" > Delete</ button >
</ table >
< p > < button formnovalidate = "formnovalidate" name = "action" value = "add" > Add</ button > </ p >
< p > < button name = "action" value = "update" > Save</ button > </ p >
</ form >
required
属性required
属性是 布尔属性。当指定时,元素为 必需。
以下表单有两个必需字段,一个用于电子邮件地址,一个用于密码。它还有一个第三个字段,只有当用户在密码字段和第三个字段中输入相同的密码时才被认为有效。
< h1 > Create new account</ h1 >
< form action = "/newaccount" method = post
oninput = "up2.setCustomValidity(up2.value != up.value ? 'Passwords do not match.' : '')" >
< p >
< label for = "username" > Email address:</ label >
< input id = "username" type = email required name = un >
< p >
< label for = "password1" > Password:</ label >
< input id = "password1" type = password required name = up >
< p >
< label for = "password2" > Confirm password:</ label >
< input id = "password2" type = password name = up2 >
< p >
< input type = submit value = "Create account" >
</ form >
对于单选按钮,如果 组 中的任何一个单选按钮被选中,则 required
属性满足。因此,在以下示例中,任何一个单选按钮都可以被选中,而不仅仅是标记为必需的那个。
< fieldset >
< legend > Did the movie pass the Bechdel test?</ legend >
< p >< label >< input type = "radio" name = "bechdel" value = "no-characters" > No, there are not even two female characters in the movie. </ label >
< p >< label >< input type = "radio" name = "bechdel" value = "no-names" > No, the female characters never talk to each other. </ label >
< p >< label >< input type = "radio" name = "bechdel" value = "no-topic" > No, when female characters talk to each other it's always about a male character. </ label >
< p >< label >< input type = "radio" name = "bechdel" value = "yes" required > Yes. </ label >
< p >< label >< input type = "radio" name = "bechdel" value = "unknown" > I don't know. </ label >
</ fieldset >
为了避免对 单选按钮组 是必需还是可选产生混淆,作者鼓励在组中的所有单选按钮上指定该属性。实际上,一般来说,作者鼓励避免使用任何一开始没有选中控件的单选按钮组,因为这是用户无法返回到的状态,因此通常被认为是糟糕的用户界面。
multiple
属性所有当前引擎都支持。
所有当前引擎都支持。
multiple
属性是 布尔属性,用于指示是否允许用户指定多个值。
以下摘录展示了如何使电子邮件客户端的“收件人”字段接受多个电子邮件地址。
< label > To: < input type = email multiple name = to ></ label >
如果用户在其用户联系人数据库中有很多朋友,其中有两个朋友分别是“蜘蛛侠”(地址为“[email protected]”)和“绯红女巫”(地址为“[email protected]”),那么在用户输入“s”后,用户代理可能会向用户建议这两个电子邮件地址。
该页面也可以从网站上链接到用户的联系人数据库。
< label > To: < input type = email multiple name = to list = contacts ></ label >
...
< datalist id = "contacts" >
< option value = "[email protected]" >
< option value = "[email protected]" >
< option value = "[email protected]" >
< option value = "[email protected]" >
</ datalist >
假设用户已在该文本控件中输入了“[email protected]”,然后开始输入以“s”开头的第二个电子邮件地址。用户代理可能会显示前面提到的两位朋友,以及 datalist
元素中给出的“astrophy”和“astronomy”值。
以下摘录展示了如何使电子邮件客户端的“附件”字段接受多个文件以供上传。
< label > Attachments: < input type = file multiple name = att ></ label >
pattern
属性所有当前引擎都支持。
所有当前引擎都支持。
pattern
属性指定一个正则表达式,用于检查控件的 value,或者当 multiple
属性 适用 并被设置时,用于检查控件的 values。
如果指定,则属性的值必须与 JavaScript Pattern[+UnicodeSetsMode, +N]
产生式匹配。
当 `input
` 元素具有指定的 `pattern
` 属性时,作者应包含 `title
` 属性以提供模式的描述。用户代理可能会在通知用户模式不匹配时,或在其他任何合适的时间(例如,在工具提示中或当控件 `获得焦点` 时通过辅助技术读出)使用此属性的内容,如果存在。
例如,以下代码片段
< label > Part number:
< input pattern = "[0-9][A-Z]{3}" name = "part"
title = "A part number is a digit followed by three uppercase letters." />
</ label >
...可能会导致 UA 显示类似的警报
A part number is a digit followed by three uppercase letters. You cannot submit this form when the field is incorrect.
当控件具有 `pattern
` 属性时,`title
` 属性(如果使用)必须描述该模式。还可以包含其他信息,只要它有助于用户填写控件。否则,辅助技术将受到影响。
例如,如果标题属性包含控件的标题,辅助技术最终可能会说出类似 `您输入的文本与所需模式不匹配。生日` 之类的内容,这没有用。
UA 仍然可以在非错误情况下显示 `title
`(例如,作为悬停在控件上的工具提示),因此作者应该注意不要将 `title
` 表述得好像已经发生了错误。
min
` 和 `max
` 属性所有当前引擎都支持。
所有当前引擎都支持。
一些表单控件可以应用明确的约束,限制用户可以提供的允许值范围。通常,此范围将是线性且连续的。但是,表单控件可以 `具有周期性域`,在这种情况下,表单控件的最广泛可能范围是有限的,并且作者可以在其中指定跨越边界的明确范围。
具体来说,`type=time
` 控件的最广泛范围是午夜到午夜(24 小时),作者可以设置连续线性范围(例如,晚上 9 点到晚上 11 点)和跨越午夜的不连续范围(例如,晚上 11 点到凌晨 1 点)。
`min
` 和 `max
` 属性指示元素允许的值范围。
如果元素不 `具有周期性域`,则 `max
` 属性的值(最大值)不能小于 `min
` 属性的值(其 最小值)。
如果元素具有定义的 最小值或定义的 最大值,则该元素 `具有范围限制`。
以下日期控件将输入限制为 1980 年代之前的日期
< input name = bday type = date max = "1979-12-31" >
以下数字控件将输入限制为大于零的整数
< input name = quantity required = "" type = "number" min = "1" value = "1" >
以下时间控件将输入限制为晚上 9 点到凌晨 6 点之间发生的那些分钟,默认值为午夜
< input name = "sleepStart" type = time min = "21:00" max = "06:00" step = "60" value = "00:00" >
step
` 属性所有当前引擎都支持。
`step
` 属性指示对 `值` 或 `值` 所期望的(和必需的)粒度,通过限制允许的值。
如果指定了 `step
` 属性,则其值必须是 `有效的浮点数`,该数解析为大于零的数字,或者其值必须与字符串 "any
" 的 `ASCII 不区分大小写` 匹配。
以下范围控件仅接受 0..1 范围内的值,并在该范围内允许 256 个步长
< input name = opacity type = range min = 0 max = 1 step = 0.00392156863 >
以下控件允许选择一天中的任何时间,具有任何精度(例如,千分之一秒精度或更高)
< input name = favtime type = time step = any >
通常,时间控件的精度限制为一分钟。
list
` 属性所有当前引擎都支持。
`list
` 属性用于标识一个元素,该元素列出了建议给用户的预定义选项。
如果存在,其值必须是 `ID`,表示同一 `树` 中的 `datalist
` 元素。
此 URL 字段提供一些建议。
< label > Homepage: < input name = hp type = url list = hpurls ></ label >
< datalist id = hpurls >
< option value = "https://www.google.com/" label = "Google" >
< option value = "https://www.reddit.com/" label = "Reddit" >
</ datalist >
用户历史记录中的其他 URL 也可能会显示;这取决于用户代理。
此示例演示了如何在设计表单时使用自动完成列表功能,同时在传统用户代理中仍能有用地降级。
如果自动完成列表仅仅是一个辅助工具,对内容并不重要,那么只需使用一个 `datalist
` 元素,其中包含子 `option
` 元素就足够了。为了防止在传统用户代理中呈现值,它们需要放置在 `value
` 属性中,而不是内联。
< p >
< label >
Enter a breed:
< input type = "text" name = "breed" list = "breeds" >
< datalist id = "breeds" >
< option value = "Abyssinian" >
< option value = "Alpaca" >
<!-- ... -->
</ datalist >
</ label >
</ p >
但是,如果需要在传统 UA 中显示这些值,则可以在 `datalist
` 元素中放置回退内容,如下所示
< p >
< label >
Enter a breed:
< input type = "text" name = "breed" list = "breeds" >
</ label >
< datalist id = "breeds" >
< label >
or select one from the list:
< select name = "breed" >
< option value = "" > (none selected)
< option > Abyssinian
< option > Alpaca
<!-- ... -->
</ select >
</ label >
</ datalist >
</ p >
回退内容仅在不支持 `datalist
` 的 UA 中显示。另一方面,选项将被所有 UA 检测到,即使它们不是 `datalist
` 元素的子元素。
请注意,如果 `datalist
` 中使用的 `option
` 元素被 `selected
`,它将默认情况下被传统 UA 选择(因为它会影响 `select
` 元素),但它不会对支持 `datalist
` 的 UA 中的 `input
` 元素有任何影响。
placeholder
` 属性所有当前引擎都支持。
所有当前引擎都支持。
`placeholder
` 属性表示一个简短的提示(一个词或短语),旨在帮助用户在控件没有值时进行数据输入。提示可以是一个示例值或对预期格式的简要描述。如果指定了该属性,其值必须不包含任何 U+000A 换行符 (LF) 或 U+000D 回车符 (CR) 字符。
`placeholder
` 属性不应作为 `label
` 的替代品使用。对于较长的提示或其他提示性文本,`title
` 属性更合适。
这些机制非常相似,但略有不同:控件 `label
` 给出的提示始终显示;在 `placeholder
` 属性中给出的简短提示在用户输入值之前显示;而 `title
` 属性中的提示在用户请求进一步帮助时显示。
以下是一个使用 `placeholder
` 属性的邮件配置用户界面的示例
< fieldset >
< legend > Mail Account</ legend >
< p >< label > Name: < input type = "text" name = "fullname" placeholder = "John Ratzenberger" ></ label ></ p >
< p >< label > Address: < input type = "email" name = "address" placeholder = "[email protected]" ></ label ></ p >
< p >< label > Password: < input type = "password" name = "password" ></ label ></ p >
< p >< label > Description: < input type = "text" name = "desc" placeholder = "My Email Account" ></ label ></ p >
</ fieldset >
在控件内容具有一个方向性而占位符需要具有不同方向性的情况下,可以在属性值中使用 Unicode 的双向算法格式化字符
< input name = t1 type = tel placeholder = " ‫ رقم الهاتف 1 ‮ " >
< input name = t2 type = tel placeholder = " ‫ رقم الهاتف 2 ‮ " >
为了稍微清晰一些,以下是使用数字字符引用而不是内联阿拉伯语的相同示例
< input name = t1 type = tel placeholder = " ‫ رقم الهاتف 1 ‮ " >
< input name = t2 type = tel placeholder = " ‫ رقم الهاتف 2 ‮ " >
input
` 元素 APIinput.value [ = value ]
返回表单控件的当前 `值`。
可以设置,以更改值。
如果设置为除空字符串之外的任何值,并且控件是文件上传控件,则会抛出 `"InvalidStateError
"` `DOMException
`。
input.checked [ = value ]
返回表单控件的当前 `选中状态`。
可以设置,以更改 `选中状态`。
input.files [ = files ]
返回一个 `FileList
` 对象,该对象列出了表单控件的 `选定文件`。
如果控件不是文件控件,则返回 null。
input.valueAsDate [ = value ]
返回一个 `Date
` 对象,该对象表示表单控件的 `值`(如果适用);否则,返回 null。
可以设置,以更改值。
如果控件不是基于日期或时间的,则会抛出 `"InvalidStateError
"` `DOMException
`。
input.valueAsNumber [ = value ]
如果适用,则返回表示窗体控件的 值 的数字;否则,返回 NaN。
可以设置,以更改值。将其设置为 NaN 将把基础值设置为空字符串。
如果控件既不是基于日期或时间的,也不是数字的,则抛出 "InvalidStateError
" DOMException
。
input.stepUp([ n ])
input.stepDown([ n ])
通过 step
属性中给定的值乘以 n 来更改窗体控件的 值。 n 的默认值为 1。
如果控件既不是基于日期或时间的,也不是数字的,或者如果 step
属性的值为 "any
",则抛出 "InvalidStateError
" DOMException
。
input.list
input.showPicker()
所有当前引擎都支持。
显示 input 的任何适用的选择器 UI,以便用户可以选择一个值。(如果对于给定控件没有实现选择器 UI,则此方法不执行任何操作。)
如果 input 不 可变,则抛出 "InvalidStateError
" DOMException
。
如果在没有 瞬时用户激活 的情况下调用,则抛出 "NotAllowedError
" DOMException
。
如果 input 位于跨域 iframe
内,则抛出 "SecurityError
" DOMException
,除非 input 处于 文件上传 或 颜色 状态。