您的位置:寻梦网首页编程乐园HTML园地HTML 4.0 参考文献

前页 | 后页 | 目录 | 元素 | 特性

表单

目录
  1. FORM 元素
  2. 控件
    1. INPUT 元素
    2. BUTTON 元素
    3. SELECTOPTION 元素
    4. TEXTAREA 元素
    5. LABEL 元素
    6. FIELDSETLEGEND 元素
  3. 让元素获得焦点
    1. 水平导航
    2. 传送键值
  4. 禁止和只读元素
    1. 禁止元素
    2. 只读元素
  5. 表单提交
    1. 哪个元素值被提交了
一 个 HTML 表 单 是 文 档 中 包 含 标 准 内 容, 标 注 和 叫 做 控件 的 特 殊 元 素 的 部 分. 控 件 响 应 并 接 受 用 户 输 入. 用 户 通 常 通 过 输 入 文 字, 选 择 菜 单 条 目 等 来 "完 成" 表 单, 然 后 提 交 表 单 以 供 处 理. 提 交 的 表 单 可 以 通 过 电 子 邮 件 发 送 给 别 人 也 可 以 发 送 给 程 式 来 处 理.

控 件 可 以 是 复 选 框, 单 选 框, 标 签, 菜 单 等. 每 个 控 件 可 以 分 配 一 个 名 称. 当 表 单 被 提 交 时, 一 些 控 件 (取决于它们的状态) 的 名 称 和 当 前 值 随 表 单 一 起 发 送. 提 交 的 值 的 自 然 属 性 取 决 于 控 件 (例 如: 文 本 框 的 值 是 输 入 的 文 本). 注 意: 这 份 说 明 书 在 表单显示问题 中 包 含 了 更 多 的 关 于 表 单 的 细 节 信 息. 关 于 对 表 格 内 容 编 码 的 信 息 已 经 打 算 加 在 这 份 草 案 以 后 的 版 本 中.

FORM 元素

<!ELEMENT FORM - - %block -(FORM)>

<!ATTLIST FORM

%attrs;牋牋牋牋牋牋牋牋牋牋牋牋-- %coreattrs, %i18n, %events --

action牋牋%URL牋牋牋 #REQUIRED -- server-side form handler --

method牋牋(GET|POST) GET牋牋牋 -- HTTP method used to submit the form --

enctype牋牋 %ContentType; "application/x-www-form-urlencoded"

onsubmit %Script #IMPLIED?-- the form was submitted --

onreset牋牋 %Script #IMPLIED?-- the form was reset --

target牋 CDATA牋 #IMPLIED?-- where to render result --

accept-charset CDATA牋 #IMPLIED?-- list of supported charsets --

?>
开 始 标 记: 需 要, 结 束 标 记: 需 要 特 性 定 义
action = url
这 个 特 性 指 定 一 来 处 理 提 交 表 单 的 格 式. 它 可 以 是 一 个 HTTP URL (提 交 给 程 式) 或 一 个 电子邮件(MAILTO) URL (邮 递 这 个 表 单).
method = get|post
这 个 特 性 指 明 哪 种 HTTP 方 法 将 被 用 来 提 交 名 称/ 值 对 给 表 单 处 理 者. 可 能 的 值 为:
  • post: 使 用 HTTP POST 方 法. POST 方 法 在 表 单 的 主 干 包 含 名称/值 对 并 且 无 需 包 含 于 action 特 性 的 URL 中.
  • get:不 赞 成. 使 用 HTTP GET 方 法. GET 方 法 把 名称/值 对 加 在 action 的 URL 后 面 并 且 把 新 的 URL 送 至 服 务 器. 这 是 往 前 兼 容 的 缺 省 值. 这 个 值 由 于 国 际 化 的 原 因 不 赞 成.
enctype = cdata
这 个 特 性 指 明 用 来 把 表 单 提 交 给 服 务 器 时 (当 method 值 为 "post") 的 互 联 网 媒 体 形 式 (Internet Media Type, 参 见 [MIMETYPES]). 这 个 特 性 的 缺 省 值 是 "application/x-www-form-urlencoded". 值 "multipart/form-data" 应 当 被 用 于 返 回 的 文 档 中 包 含 提 交 文 件 时.
accept-charset = cdata
这 个 特 定 指 定 了 一 个 可 以 被 服 务 器 处 理 这 个 表 单 的 输 入 数 据 时 接 受 的 字符编码 列 表. 这 个 值 是 在 [RFC2045] 中 的 定 义 的 用 空 格 和/或 逗 号 分 列 的 "character" 列 表. 服 务 器 必 须 把 这 个 列 表 解 释 为 独 占 列 表, 就 是 说 服 务 器 必 能 够 接 受 每 个 条 目 收 到 时 的 单 独 字 符 编 码.

这 个 特 性 的 缺 省 值 是 保 留 字 串 "UNKNOWN". 用 户 代 理 器 可 以 把 此 值 解 译 作 包 含 在 FORM 元 素 中 的 用 于 传 送 文 档 的 编 码 方 式.

accept = cdata
这 个 特 性 指 明 了 一 个 服 务 器 处 理 能 够 正 确 处 理 这 个 表 单 的 用 逗 号 分 列 的 MIME 格 式 列 表. 当 提 示 用 户 选 择 一 个 文 件 发 送 到 服 务 器 时 (通 过 INPUT 元 素 的 type="file"), 用 户 代 理 器 可 以 使 用 这 信 息 来 过 滤 掉 不 一 致 的 文 件.
在 它 处 定 义 的 特 性 FORM 元 素 作 为 控 件 的 容 器. 它 指 定 了:
  • 表 单 的 界 面 (通 过 元 素 内 容 给 出).
  • 将 用 来 处 理 完 成 和 提 交 表 单 的 程 式 (action 特 性). 为 了 使 用 它 们 收 到 的 程 式 必 须 能 够 剖 析 名称/值 对.
  • 用 户 数 据 通 过 哪 种 方 式 送 到 服 务 器 (method 特 性).
  • 为 了 处 理 这 个 表 单 字 符 编 码 方 式 必 须 能 够 被 服 务 器 接 受 (accept-charset 特 性). 用 户 代 理 器 可 以 建 议 用 户 的 accept-charset 特 性 值 和/或 有 防 止 用 户 输 入 不 认 识 的 字 符 的 能 力.
一 个 表 单 可 以 包 含 文 字 和 标 注 (段 落, 列 表 等 等) 就 象 列 示 于 下 的 控 件 那 样.

FORM 元 素 中 任 何 特 性 的 name 特 性 有 效 范 围 是 FORM 元 素. 下 面 的 例 程 指 定 了 提 交 的 表 单 将 被 "adduser" 程 式 处 理. 这 个 表 单 将 通 过 HTTP POST 方 法 发 送 到 程 式.

<FORM action="http://somesite.com/prog/adduser" method="post">

?I>...form contents...

</FORM>
下 面 的 例 程 展 示 了 如 何 把 一 个 提 交 表 单 发 送 到 一 个 电 子 邮 件 地 址.
<FORM action="mailto:Kligor.T@gee.whiz.com" method="post">

?I>...form contents...

</FORM>

控件

下 面 的 控 件 元 素 通 常 出 现 于 一 个 FORM 元 素 声 明 中. 然 而, 这 些 元 素 当 用 来 建 立 用 户 接 口 时 也 可 以 出 现 在 FORM 元 素 声 明 外. 这 将 在 说 明 书 中 稍 后 讨 论, 在 内部事件 章 节 中.

控件标签
某 些 表 单 控 件 自 动 联 系 标 签 (通 过 INPUTBUTTON 建 立 的 按 钮) 然 而 大 多 数 不 这 样 (通 过 INPUTTEXTAREA 的 文 本 域, 通 过 INPUT 建 立 的 复 选 框 和 单 选 框 和 用 SELECT 建 立 的 元 素).

对 于 那 些 含 有 暗 式 标 签 的 控 件, 用 户 代 理 器 应 当 把 value 特 性 值 作 为 标 签 字 串.

对 于 那 些 没 有 暗 式 标 签 的 控 件, 作 者 必 须 在 控 件 元 素 定 义 的 前 或 后 提 供 标 签. 举 例 说 明 如 下.

INPUT 元素

<!ENTITY % InputType

?"(TEXT | PASSWORD | CHECKBOX |

 RADIO | SUBMIT | RESET |

 FILE | HIDDEN | IMAGE | BUTTON)"

牋 >



<!-- HSPACE and VSPACE missing due to lack of widespread support -->

<!ELEMENT INPUT - O EMPTY>

<!ATTLIST INPUT

?%attrs;牋牋牋牋牋牋牋牋牋牋牋 -- %coreattrs, %i18n, %events --

type牋 %InputType牋 TEXT牋 -- what kind of widget is needed --

name牋牋 CDATA牋 #IMPLIED?-- required for all but submit & reset --

value牋牋牋 CDATA牋 #IMPLIED?-- required for radio and checkboxes --

checked牋 (checked) #IMPLIED?-- for radio buttons and check boxes --

disabled?(disabled)牋 #IMPLIED?-- control is unavailable in this context --

readonly?(readonly)牋 #IMPLIED?-- for text and passwd --

size牋牋 CDATA牋 #IMPLIED?-- specific to each type of field --

maxlength牋 NUMBER牋牋 #IMPLIED?-- max chars for text fields --

src牋牋牋牋 %URL牋牋牋 #IMPLIED?-- for fields with images --

alt牋牋牋牋 CDATA牋 #IMPLIED?-- description for text only browsers --

usemap牋 %URL牋牋牋 #IMPLIED?-- use client-side image map --

align牋牋牋 %IAlign #IMPLIED?-- vertical or horizontal alignment --

tabindex NUMBER牋牋 #IMPLIED?-- position in tabbing order --

onfocus牋牋 %Script #IMPLIED?-- the element got the focus --

onblur牋 %Script #IMPLIED?-- the element lost the focus --

onselect %Script #IMPLIED?-- some text was selected --

onchange %Script #IMPLIED?-- the element value was changed --

accept牋 CDATA牋 #IMPLIED?-- list of MIME types for file upload --

?>
开 始 标 签: 需 要, 结 束 标 签: 禁 止 特 性 定 义
?
type = text|password|checkbox|radio|submit|reset|file|hidden|image|button
这 个 特 性 指 定 了 要 建 立 的 输 入 控 件. 我 们 在 后 面 讨 论 输入控件格式 . 这 个 特 性 的 缺 省 值 是 "text".
name = cdata
这 个 特 性 为 控 件 提 供 一 个 名 称. 这 个 名 称 将 与 控 件 的 当 前 值 成 对 如 果 元 素 值 与 表 单 一 同 提 交 的 话.
value = cdata
这 个 特 性 指 定 了 控 件 的 初 始 值. 它 是 可 选 的 除 非 控 件 形 式 是 "radio" (译 者:即 单 选 框).
size = cdata
这 个 特 性 告 诉 用 户 代 理 器 控 件 的 初 始 宽 度. 这 个 宽 度 用 像 素 给 出, 除 非 "text" 和 "password" 控 件 格 式 是 (整 数 的) 字 符 数 目.
maxlength = integer
当 控 件 格 式 为 "text" 或 "password" 时, 这 个 特 性 指 定 的 可 以 输 入 的 字 符 的 最 大 量. 这 个 数 值?可 以 超 过 指 定 的 size, 这 个 情 况 下 用 户 代 理 器 就 当 提 供 一 个 滚 动 结 构. 这 个 特 性 的 缺 省 值 是 对 数 量 没 有 限 制 的.
checked
当 控 件 格 式 为 "radio" (单 选 框)?时, 这 个 布 尔 值?指 定 了 单 选 框 被 选 中. 这 个 特 性 必 须 被 其 它 的 控 件 格 式 忽 略.
src = url
当 控 件 格 式 为 "image" 时, 这 个 特 性 指 定 的 用 来 装 饰 图 案 式 提 交 按 钮 的 图 案 位 置.
在 它 处 定 义 的 特 性 通 过 INPUT 元 素 定 义 的 控 件 的 自 然 属 性 取 决 于 type 特 性 的 值.

输入格式

INPUT 元 素 的 type 特 性 定 义 了 哪 种 控 件 将 被 建 立.
text
这 个 格 式 建 立 一 个 单 行 文 本 框. 这 个 通 过 文 本 框 框 提 交 的 值 是 输 入 的 文 字.
password
如 同 "text", 但 这 个 控 件 的 输 入 文 字 通 来 一 种 隐 藏 字 符 的 方 式 来 渲 染 (如 一 系 列 星 号). 这 个 控 件 用 于 大 小 写 相 关 的 如 密 码 的 输 入. 这 个 通 过 密 码 控 件 提 交 的 值 是 输 入 的 文 字 (并 非 渲 染 的 东 西).
checkbox
一 个 复 选 框 有 一 个 打开/关闭 开 关. 当 开 关 打 开 时, 复 选 框 的 值 是 "active". 当 开 关 关 闭 时, 这 个 值 是 则 没 有 激 活. 复 选 框 的 值 只 有 在 复 选 框 被 选 中 时 提 交.

数 个 在 同 一 个 表 单 中 的 复 选 框 可 以 使 用 同 一 个 名 称. 在 提 交 时, 每 一 个 "打 开" 的 具 有 相 同 名 称 的 复 选 框 使 用 相 同 的 名 称 组 件 提 交 一 个 名称/值 对. 这 允 许 用 户 代 理 器 对 给 定 的 属 性 选 择 超?过 一 个 的 值.

radio
一 个 单 选 框 是 一 个 打开/关闭 开 关. 当 这 个 开 关 打 开 时, 这 个 单 选 框 的 值 是 "active". 当 开 关 关 闭 时, 这 个 值 则 没 有 激 尖. 单 选 框 的 值 只 有 在 开 关 打 开 时 提 交.

数 个 在 同 一 个 表 单 的 单 选 框 可 以 有 一 个 名 称. 然 而, 它 些 按 钮 中 在 同 一 个 时 刻 只 有 一 个 可 以 被 "打 开". 在 某 个 设 定 为 "打 开" 的 时 候, 所 有 相 关 的 按 钮 都 是 "关 闭". 因 此, 对 于 相 关 单 选 按 钮, 只 有 一 个 名称/值 对 被 提 交.

submit
建 立 一 个 提 交 按 钮. 当 这 个 按 钮 被 用 户 激 活 时, 表 单 被 提 交 到 在 全 局FORM 元 素 的 action 指 定 的 位 置.

一 个 表 单 可 以 包 含 一 个 以 上 的 提 交 按 钮. 只 有 一 个 激 活 的 名称/值 对 与 表 单 一 起 被 提 交.

image
建 立 一 个 图 像 化 的 submit 按 钮. src 特 性 的 值 指 定 了 将 修 饰 按 钮 的 图 像 的 URL. 某 些 用 户 可 能 无 法 看 到 这 些 图 像. 我 们 强 烈 建 议 通 过 提 供 alt 特 性 值 来 提 供 一 个 图 像 的 轮 替 文 字.

当 一 个 定 位 装 置 在 图 像 上 单 击 的 时 候, 表 单 被 提 交 并 且 位 置 被 传 送 到 服 务 器. x 值 是 从 图 像 的 左 面 开 始 的 以 像 素 为 单 位 的 尺 寸, 而?y 值 是 从 图 像 的 顶 端 开 始 的 以 像 素 为 单 位 的 尺 寸. 这 提 交 的 数 值 包 含?name.x=x-value 和 name.y=y-value 时, 这 里 的 "name" 是 name 特 性 值, 而 x-value 和 y-value 是 x 和 y 坐 标 各 自 的 值.

如 果 服 务 器 根 据 单 击 的 位 置 采 用 不 同 的 对 待,?使 用 非 图 案 化 浏 览 器 的 用 户 将 失 去 优 势. 由 于 这 个 原 因, 建 议 你 考 虑 轮 替 途 径:

  • 使 用 多 个 提 交 按 钮 (每 个 都 有 其 自 身 的 图 像) 来 代 替 一 个 简 单 的 图 案 提 交 按 钮. 你 可 以 使 用 风 格 页 来 控 制 这 些 按 钮 的 位 置.
  • 与 脚 本 共 同 使 用 一 个 客户端图像映像.
当 "type=image" 时 一 个 可 能 的 功 能 扩 展 将 把 usemap 特 性 加 到 INPUT?用 作 客 户 端 图 像 映 像 . 对 应 于 单 击 位 置 的 AREA 元 素 将 有 助 于 把 值 传 到 服 务 器. 为 了 避 免 须 要 修 改 服 务 器 脚 本 的 必 要, 它 可 被 适 当 地 扩 展 AREA 来 提 供 x 和 y 值 来 与 INPUT 元 素 同 时 使 用.
reset
建 立 一 个 复 位 按 钮 (我 经 常 用 "重 填" 来 标 识 这 个 按 钮). 当 这 个 按 扭 被 用 户 激 活 时, 表 单 中 的 所 有 控 件 被 重 设 为 通 过 它 们 的 value?指 定 的 初 始 值. 复 位 按 钮 的 名称/值 不 与 表 单 一 起 提 交.
button
建 立 的 按 钮 没 有 缺 省 行 为. 按 扭 行 为 通 过 联 系 客 户 端 按 钮 事 件 来 定 义 (如 单 击 按 钮). value 特 性 的 值 被?用 作 按 钮 的 标 签.
例 如, 下 列 的 声 明 当 按 钮 被 激 活 时 引 起 被 叫 做 的 verify 的 函 数 被 执 行. 这 个 脚 本 是 SCRIPT 元 素 定 义 的.
<INPUT type="button" value="Click Me" onclick="verify()">
请 参 见?内部事件 章 节 获 得 更 多 的 关于 脚 本 和 事 件 的 信 息.
hidden
建 立 一 个 不 被 用 户 代 理 器 渲 染 的 元 素. 然 而, 元 素 的 名 称 和 值 还 是 与 表 单 一 起 提 交.

这 个 控 件 格 式 通 常 被 用 来 保 存 客户端/服务器 之 间 的 可 能 被 HTTP 丢 失 的 交 换 信 息.

INPUT 控 件 的 hidden 格 式 有 其 自 身 的 与 表 单 一 起 传 送 的 值. 共 同 包 含 于 中 的 也 不 被 渲 染 因 为 风 格 信 息 的 原 因. 下 列 的 控 件, 当 然 不 被 用 户 代 理 器 渲 染, 将 与 表 单 一 起 提 交 它 们 的 值.

<INPUT type="password" style="display:none"牋

牋牋牋 name="invisible-password"

牋牋牋 value="mypassword">
file
显 不 用 户 一 个 文 件 名 称. 当 这 个 表 单 被 激 活 时, 文 件 控 件 如 同 其 它 用 户 输 入 一 般 被 提 交 到 服 务 器.

用 户 代 理 器 就 当 把 这 些 文 件 压 缩 封 装 为 一 个 MIME multipart 文 档 (参 见 [RFC2045]). 这 个 结 构 把 每 个 文 件 以 一 种 MIME multipart 的 格 式 压 缩 封 装 把 整 体 传 送 给 HTTP. 每 个 主 干 部 分 可 以 被 标 签 为 一 个 联 系 于 "Content-Type" 的 格 式, 包 括 如 果 需 要 一 个 "charset" 参 数 来 指 定 字 符 编 码.

下 面 的 例 程 HTML 片 断 定 义 了 一 个 简 单 表 单 允 许 用 户 输 入 名,姓, 电 子 邮 件 地 起码, 以 及 性 别. 当 提 交 按 钮 被 激 活 时, 这 个 表 单 被 送 到 以 action 指 定 的 程 式..
<FORM action="http://somesite.com/prog/adduser" method="post">

 <P>

 First name: <INPUT type="text" name="firstname"><BR>

 Last name: <INPUT type="text" name="lastname"><BR>

 email: <INPUT type="text" name="email"><BR>

 <INPUT type="radio" name="sex" value="Male"> Male<BR>

 <INPUT type="radio" name="sex" value="Female"> Female<BR>

 <INPUT type="submit" value="Send"> <INPUT type="reset">

</FORM>
这 个 表 单?会 被?如 下 渲 染:


LABEL 元 素 的 部 分, 我 们 决 定 标 注 标 签 为 "First name". 下 面 的 列 程 展 示 了 一 个 用 户 指 定 文 件 的 内 容 如 何 与 表 单 一 起 被 提 交. 这 个 例 程 基 于 [RFC1867] 的 例 程.

在 此 例 中, 用 户 被 提 示 输 入 将 于 表 单 一 起 提 交 的 一 个 文 件 和 一 串 文 件 名 列 表. 通 过 指 定 enctype 值 为 "multipart/form-data", 每 个 文 件 的 内 容 均 在 存 放 于 一 个 multipart 文 档 的 单 独 的 部 分 中.

<FORM action="http://server.dom/cgi/handle"

 enctype="multipart/form-data"

 method="post">

燱hat is your name? <INPUT type="text" name="name_of_sender">

燱hat files are you sending? <INPUT type="file" name="name_of_files">

</FORM>
请 参 阅 [RFC1867] 来 获 得 更 多 的 关 于 文 件 提 交 的 信 息.

ISINDEX 元素

ISINDEX 是 不 赞 成 的. 用 户 应 当 使 用 INPUT 元 素 来 代 替 它.
<!ELEMENT ISINDEX - O EMPTY>

<!ATTLIST ISINDEX

?%coreattrs;牋牋牋牋牋牋牋牋牋 -- id, class, style, title --

牋 %i18n;牋牋牋牋牋牋牋牋牋牋牋牋牋 -- lang, dir --

prompt牋 CDATA牋 #IMPLIED?-- prompt message -->
开 始 标 记: 需 要, 结 束 标 记: 禁 止 特 性 定 义
prompt = cdata
不 赞 成. 这 个 特 性 指 定 了 输 入 域 的 提 示 字 符 串.
在 它 处 定 义 的 特 性 ISINDEX 元 素 使 得 用 户 代 理 器 提 示 用 户 输 入 一 个 简 单 的 行 (允 许 任 意 数 量 的 字 符). 用 户 代 理 器 会 使 用 prompt 特 性 作 为 提 示 的 标 题. 不 赞 成 例 程:
下 面 的 ISINDEX 声 明:
<ISINDEX prompt="Enter your search phrase: ">
等 同 于 下 面 的 INPUT 声 时:
<FORM action="..." method="post">

Enter your search phrase: <INPUT type="text">

</FORM>
ISINDEX 的 语 义 问 题. 目 前, 只 有 当 编 码 文 当 的 基 URL 是 一 个 HTTP URL 时 ISINDEX 有 其 完 善 定 义 的 语 义. 在 实 践 中, 由 于 没 有 其 它 的 可 用 于 URL 结 构 的 不 同 字 符 集, 输 入 字 串 受 Latin-1 的 限 制 .

BUTTON 元素

<!ELEMENT BUTTON - -

牋牋 (%inline | %blocklevel)* -(A | %formctrl | FORM | ISINDEX | FIELDSET)>

<!ATTLIST BUTTON

?%attrs;牋牋牋牋牋牋牋牋牋牋牋 -- %coreattrs, %i18n, %events --

name牋牋 CDATA牋 #IMPLIED?-- for scripting/forms as submit button --

value牋牋牋 CDATA牋 #IMPLIED?-- gets passed to server when submitted --

type (submit|reset) #IMPLIED?-- for use as form submit/reset button --

disabled牋 (disabled)?#IMPLIED?-- control is unavailable in this context --

tabindex NUMBER牋牋 #IMPLIED?-- position in tabbing order --

onfocus牋牋 %Script #IMPLIED?-- the element got the focus --

onblur牋 %Script #IMPLIED?-- the element lost the focus --

?>
开 始 标 记: 需 要, 结 束 标 记: 需 要 特 性 定 义
name = cdata
这 个 特 性 为 按 钮 分 配 一 个 名 称.
value = cdata
这 个 特 性 为 按 钮 分 配 一 个 值.
type = button|submit|reset
这 个 特 性 声 明 了 按 钮 形 式. 当 这 个 特 性 没 有 被 设 定 时, 这 个 按 钮 行 为 是 未 定 义 的 . 可 能 的 值 为:
  • button: 建 立 一 个 打 算 激 发 脚 本 的 按 钮.
  • submit: 建 立 一 个 提 交 整 份 表 单 的 按 钮. 这 是 缺 省 值.
  • reset: 建 立 一 个 复 位 整 份 表 单 的 按 钮.
在 它 处 定 义 的 特 性 一 个 格 式 为 "sbumint" 的 BUTTON 元 素 与 一 个 格 式 为 "submit" 的 INPUT 元 素 相 当 近 似. 它 们 两 者 都 引 起 表 单 的 提 交, 但 BUTTON 元 素 允 许 更 丰 富 的 展 现 可 能 性.

一 个 格 式 为 "submit" 且 内 容 为 一 张 图 像 (如 IMG 元 素) 的 BUTTON 元 素 非 常 近 似 于 一 个 格 式 为 "image" 的 INPUT 元 素. 两 者 都 引 起 表 单 的 提 交, 但 它 们 的 表 现 不 同. 在 这 种 上 下 文 中, 一 个 INPUT 元 素 被 打 算 作 为 一 个 "flat" 图 像 渲 染, 而 一 个 BUTTON 被 打 算 作 为 一 个 按 钮 渲 染 (例 如 当 单 击 时 的 缓 动 和 上/下 阴 影). 下 面 的 例 程 通 过 BUTTON 按 钮 实 例 代 替 建 立 提 交 和 复 位 按 钮 的 INPUT 元 素 来 扩 展 了 前 例. 这 个 按 钮 通 过 IMG 元 素 来 包 含 图 像.

<FORM action="http://somesite.com/prog/adduser" method="post">

 <P>

 First name: <INPUT type="text" name="firstname"><BR>

 Last name: <INPUT type="text" name="lastname"><BR>

 email: <INPUT type="text" name="email"><BR>

 <INPUT type="radio" name="sex" value="Male"> Male<BR>

 <INPUT type="radio" name="sex" value="Female"> Female<BR>

 <BUTTON name="submit" value="submit" type="submit">

 Send<IMG src="/icons/wow.gif" alt="wow"></BUTTON>

 <BUTTON name="reset" type="reset">

 Reset<IMG src="/icons/oops.gif" alt="oops"></BUTTON>

</FORM>
如 果 一 个 BUTTONIMG 元 素 一 起 使 用. 我 们 建 议 采 用 IMG 元 素 的 alt 特 性 来 提 供 一 个 描 述 给 看 不 到 这 个 图 像 的 用 户.

把 一 个 图 像 映 像 与 一 个 作 为 BUTTON 元 素 内 容 的 IMG 联 系 起 来 是 非 法 的. 非 法 例 程:
下 面 的 不 认 为 是 合 法 的 HTML

<BUTTON>

<IMG src="foo.gif" usemap="...">

</BUTTON>
一 个 格 式 为 "reset" 的 BUTTON 元 素 与 一 个 格 式 为 "reset" 的 INPUT 元 素 相 当 近 似. 两 种 情 况 都 控 制 重 新 获 得 初 始 值, 但 BUTTON 元 素 约 许 更 丰 富 的 展 现.

BUTTON 元 素 也 能 够 与 脚 本 共 同 使 用, 在 这 种 情 况 下 它 的 type 应 当 为 "button". 当 这 样 的 一 个 按 钮 被 激 活 时, 一 个 客 户 端 脚 本 被 运 行. 我 们 在 这 个 说 明 书 的 后 面 的 内部事件 章 节 讨 论 BUTTON 的 使 用.

SELECT 和?A NAME="edef-OPTION">OPTION 元素

<!ELEMENT SELECT - - (OPTION+)>

<!ATTLIST SELECT

?%attrs;牋牋牋牋牋牋牋牋牋牋牋 -- %coreattrs, %i18n, %events --

name牋牋 CDATA牋 #REQUIRED -- field name --

size牋牋 NUMBER牋牋 #IMPLIED?-- rows visible --

multiple?(multiple)牋 #IMPLIED?-- default is single selection --

disabled?(disabled)牋 #IMPLIED?-- control is unavailable in this context --

tabindex NUMBER牋牋 #IMPLIED?-- position in tabbing order --

onfocus牋牋 %Script #IMPLIED?-- the element got the focus --

onblur牋 %Script #IMPLIED?-- the element lost the focus --

onselect %Script #IMPLIED?-- some text was selected --

onchange %Script #IMPLIED?-- the element value was changed --

?>
开 始 标 记: 需 要, 结 束 标 记: 需 要 SELECT 特 性 定 义
name = cdata
这 个 特 性 为 元 素 分 配 一 个 名 称. 这 个 名 称 将 在 表 单 被 提 交 时 与 选 定 的 值 成 对.
size = integer
这 个 特 性 指 定 被 用 来 代 理 器 渲 染 的 横 行 的 数 目. 横 行 的 数 目 可 以 小 于 可 能 的 选 择 的 数 目. 这 这 种 情 况 下, 用 户 代 理 会 提 供 一 个 滚 动 机 构 以 便 处 理 所 有 可 能 的 选 择.
multiple
当 设 定 的 时 候, 这 个 布 尔 值 允 许 多 选 项. 而 在 没 有 设 定 时, SELECT 元 素 只 允 许 单 个 选 择. 典 型 地, 可 视 用 户 代 理 器 以 列 表 框 渲 染 多 选 元 素, 而 以 下 拉 框 渲 染 单 选 元 素.
SELECT 元 素 建 立 一 个 可 被 可 户 选 择 的 选 项 例 表. 每 个SELECT 元 素 必 须 包 含 一 个 选 择. 每 个 选 择 通 过 一 个 OPTION 元 素 实 例 来 指 定.
<!ELEMENT OPTION - O (#PCDATA)*>

<!ATTLIST OPTION

?%attrs;牋牋牋牋牋牋牋牋牋牋牋 -- %coreattrs, %i18n, %events --

selected?(selected)牋 #IMPLIED

disabled?(disabled)牋 #IMPLIED?-- control is unavailable in this context --

value牋牋牋 CDATA牋 #IMPLIED?-- defaults to element content --

?>
开 始 标 记: 需 要, 结 束 标 记: 可 选 OPTION 特 性 定 义
selected
当 设 定 时, 这 个 布 尔 特 性 指 定 了 这 个 选 项 是 选 定 的 (初 始 或 通 过 用 户).
value = cdata
这 个 特 性 指 定 了 如 果 这 个 选 择 被 选 中 后 与 表 单 提 交 时 提 交 的 值. 这 个 值 与 分 配 给 SELECT 元 素 的 namee 配 对. 如 果 这 个 特 性 没 有 设 定, 缺 省 提 交 值 为 OPTION 元 素 的 内 容.
在 它 处 定 义 的 特 性 用 户 应 当 把 OPTION 元 素 的 内 容 用 来 显 示 选 择 项. 在 此 例 中, 我 们 建 立 一 个 下 拉 框 允 许 用 户 来 选 择 七 个 软 件 组 件 来 安 装. 第 一 和 第 二 个 组 件 初 始 被 选 中 但 也 可 以 被 用 户 取 消. 剩 下 的 组 件 在 初 始 中 没 有 被 选 中. size 特 性 使 得 下 拉 框 显 示 4 个 横 行 而 用 户 要 在 7 个 选 项 中 选 择. 其 它 的 选 项 可 以 通 过 滚 动 机 制 来 实 现.

SELECT 后 跟 提 提 交 与 复 位 按 钮.

<FORM action="http://somesite.com/prog/component-select" method="post">

牋 <SELECT multiple size="4" name="component-select">


牋 <OPTION selected value="Component_1_a">Component_1</OPTION>

牋 <OPTION selected value="Component_1_b">Component_2</OPTION>

牋 <OPTION>Component_3</OPTION>

牋 <OPTION>Component_4</OPTION>

牋 <OPTION>Component_5</OPTION>

牋 <OPTION>Component_6</OPTION>

牋 <OPTION>Component_7</OPTION>

牋 </SELECT>

牋 <INPUT type="submit" value="Send"><INPUT type="reset">

</FORM>
当 表 单 被 提 供 时, 每 个 选 择 项 目 将 与 "component-select" 名 称 成 对 并 提 交. 提 交 的 每 个 OPTION 的 值 则 是 它 的 风 容, 除 非 在 哪 里 使 用 了 value 特 性 来 覆 盖 它 (这 里 的 前 两 个 组 件).

TEXTAREA 元素

<!ELEMENT TEXTAREA - - (#PCDATA)*>

<!ATTLIST TEXTAREA

?%attrs;牋牋牋牋牋牋牋牋牋牋牋 -- %coreattrs, %i18n, %events --

name牋牋 CDATA牋 #REQUIRED

rows牋牋 NUMBER牋牋 #REQUIRED

cols牋牋 NUMBER牋牋 #REQUIRED

disabled?(disabled)牋 #IMPLIED?-- control is unavailable in this context --

readonly?(readonly)牋 #IMPLIED

tabindex NUMBER牋牋 #IMPLIED?-- position in tabbing order --

onfocus牋牋 %Script #IMPLIED?-- the element got the focus --

onblur牋 %Script #IMPLIED?-- the element lost the focus --

onselect %Script #IMPLIED?-- some text was selected --

onchange %Script #IMPLIED?-- the element value was changed --

?>
开 始 标 记: 需 要, 结 束 标 记: 需 要?/B> 特 性 定 义
name = cdata
这 个 特 性 把 一 个 名 称 分 配 给 元 素. 这 个 名 称 将 在 元 素 被 提 交 到 服 务 器 时 与 其 内 容 成 对.
rows = integer
指 定 可 见 的 文 字 行 的 数 目. 用 户 应 当 能 够 输 入 超 过 这 个 数 量 的 行, 所 以 用 户 代 理 器 应 当 提 供 某 些 当 内 容 超 过 可 视 区 域 时 在 textarea 中 滚 动 内 容 的 方 法.
cols = integer
指 定 可 视 字 符 宽 度. 用 户 的 输 入 应 当 能 够 比 之 更 长, 所 以 用 户 代 理 器 应 当 在 其 内 容 超 过 可 视 区 域 时 提 供 某 些 滚 动 textarea 域 内 容 的 方 法. 用 户 代 理 器 可 以 对 可 视 文 字 进 行 折 行 来 保 持 长 名 而 无 需 滚 动.
在 它 处 定 义 的 特 性 TEXTAREA 元 素 建 立 一 个 多 行 文 本 输 入 控 件 (相 对 于 单 行 INPUT 控 件). 这 个 元 素 的 内 容 提 供 控 件 展 现 的 初 始 文 本. 这 个 例 程 建 立 一 个 TEXTAREA 控 件 包 含 20 行 和 80 列 并 且 有 两 行 初 始 文 字. TEXTAREA 后 跟 提 交 和 复 位 按 钮. ?
<FORM action="http://somesite.com/prog/text-read" method="post">

牋 <TEXTAREA rows="20" cols="80">

牋 First line of initial text.

牋 Second line of initial text.

牋 </TEXTAREA>

牋 <INPUT type="submit" value="Send"><INPUT type="reset">

</FORM>
设 置 readonly 特 性 允 许 作 者 在 TEXTAREA 显 示 不 可 修 改 的 文 本. 这 不 同 于 在 文 档 中 使 用 标 准 标 注 文 本 因 为 TEXTAREA 的 值 与 表 单 一 起 被 提 交.

当 提 交 域 内 容 时 建 议 用 户 代 理 器 遵 照 CR, LF (ASCII 10 进 制 13, 10) 行 结 束 准 则. 提 交 数 据 的 字 符 集 应 当 为 ISO Latin-1, 除 非 服 器 器 预 先 指 定 可 以 支 持 轮 替 的 字 符 集.

LABEL 元素

<!ELEMENT LABEL - - (%inline)* -(LABEL) -- field label text -->

<!ATTLIST LABEL

?%attrs;牋牋牋牋牋牋牋牋牋牋牋 -- %coreattrs, %i18n, %events --

for牋牋牋牋 IDREF牋 #IMPLIED?-- matches field ID value --

disabled (disabled) #IMPLIED?-- control is unavailable in this context --

accesskey牋 CDATA牋 #IMPLIED?-- accessibility key character --

onfocus牋牋 %Script #IMPLIED?-- the element got the focus --

onblur牋 %Script #IMPLIED?-- the element lost the focus --



?>
开 始 标 记: 需 要, 结 束 标 记: 需 要 特 性 定 义
for = control-name
这 个 特 性 显 式 地 把 定 义 的 标 签 联 系 到 另 一 个 控 件. 这 个 特 性 的 值 必 须 是 在 同 一 个 文 档 中 的 某 些 id 特 性 的 值. 当 这 个 特 性 不 存 在 时, 标 签 定 义 与 它 的 内 容 有 关.
在 它 处 定 义 的 特 性 LABEL 元 素 可 以 被 用 来 接 连 信 息 到 其 它 的 控 件 元 素 (排 除 其 它 LABEL 元 素). 标 签 可 以 被 用 户 代 理 器 以 数 个 方 法 渲 染 (如 可 视 的, 被 语 单 机 构 读 出, 等 等)

当 一 个 LABEL 元 素 得 到 焦 点 时, 它 把 焦 点 传 送 到 与 之 相 关 的 控 件. 查 见 下 面 的 access keys 章 节 例 程.

为 了 显 式 地 把 一 个 标 签 联 系 到 控 件, 参 见 LABELfor 特 性. 这 个 例 程 建 立 一 个 表 格 来 对 齐 两 个 INPUT 控 件 以 及 相 应 的 关 联 标 签. 每 个 标 签 到 显 式 地 联 接 到 一 个 INPUT 元 素.

<FORM action="..." method="post">

<TABLE>

?<TR>

 <TD><LABEL for="fname">First Name</LABEL>

 <TD><INPUT type="text" name="firstname" id="fname">

?<TR>

 <TD><LABEL for="lname">Last Name</LABEL>

 <TD><INPUT type="text" name="lastname" id="lname">

</TABLE>



<FORM>
这 个 例 程 以 包 含 LABEL 元 素 扩 展 了 前 例. 注 意 LABEL 元 素 通 过 id 特 性 与 INPUT 元 素 联 接.
<FORM action="http://somesite.com/prog/adduser" method="post">

 <P>

 <LABEL for="firstname">First name: </LABEL><INPUT?

牋牋牋牋牋 type="text" id="firstname"><BR>

 <LABEL for="lastname">Last name: </LABEL><INPUT?

牋牋牋牋牋 type="text" id="lastname"><BR>

 <LABEL for="email"email: </LABEL><INPUT?

牋牋牋牋牋 type="text" id="email"><BR>

 <INPUT type="radio" name="sex" value="Male"> Male<BR>

 <INPUT type="radio" name="sex" value="Female"> Female<BR>

 <INPUT type="submit" value="Send"> <INPUT type="reset">

</FORM>
一 个 以 上 的 LABEL 可 以 通 过 for 特 性 建 立 多 参 照 被 联 接 到 同 一 个 控 件.

为 了 隐 式 地 把 一 个 标 签 联 系 到 另 一 个 控 件, 来 控 制 LABEL 的 内 容. 这 种 情 况 下, LABEL 只 可 以 包 含 一 个 其 它 控 件 元 素. 标 签 本 身 可 以 在 联 系 控 件 的 前 面 或 后 面. 在 此 例 中, 我 们 隐 式 地 把 两 个 标 签 联 系 到 两 个 INPUT 元 素. 注 意 隐 式 方 法 阻 止 我 们 在 表 格 中 划 分 标 签 和 与 之 相 关 的 控 件 (参 见 前 例).

<FORM action="..." method="post">

<LABEL>

牋 First Name

牋 <INPUT type="text" name="firstname">

</LABEL>

<LABEL>

牋 <INPUT type="text" name="lastname">

牋 Last Name

</LABEL>

</FORM>

FIELDSET 和?A NAME="edef-LEGEND">LEGEND 元素

<!--

?#PCDATA is to solve the mixed content problem,

?per specification only whitespace is allowed there!

?->

<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,%block)>

<!ATTLIST FIELDSET

?%attrs;牋牋牋牋牋牋牋牋牋牋牋 -- %coreattrs, %i18n, %events --

?>



<!ELEMENT LEGEND - - (%inline;)+>

<!ENTITY % LAlign "(top|bottom|left|right)">



<!ATTLIST LEGEND牋牋牋牋 -- fieldset legend --

?%attrs;牋牋牋牋牋牋牋牋牋牋牋 -- %coreattrs, %i18n, %events --

align牋牋牋 %LAlign;牋 #IMPLIED?-- relative to fieldset --

accesskey牋 CDATA牋 #IMPLIED?-- accessibility key character --

?>
开 始 标 记: 需 要, 结 束 标 记: 需 要 LEGEND 特 性 定 义
align = top|bottom|left|right
这 个 特 性 指 定 了 标 签 相 对 于 域 设 置 的 对 齐 位 置. 可 能 的 值 为:
  • top: 标 签 在 域 设 定 的 上 端. 这 是 缺 省 值.
  • bottom: 标 签 在 域 设 定 的 下 端.
  • left: 标 签 在 域 设 定 的 左 端.
  • right: 标 签 在 域 设 定 的 右 端.
在 它 处 定 义 的 特 性 FIELDSET 元 素 表 单 设 计 者 技 术 性 对 把 控 件 成 组. 成 组 控 件 使 用 户 更 容 易 明 白 它 们 的 意 图 同 时 也 可 以 帮 助 可 视 用 户 代 理 器 和 面 向 语 音 的 语 音 导 航 用 户 代 理 器. 这 些 元 素 的 适 当 使 用 使 得 有 残 疾 的 人 们 更 易 于 操 作.

LEGEND 元 素 允 许 设 计 者 为 一 个 FIELDSET 分 配 一 个 标 签. 当 FIELDSET 被 渲 染 为 不 可 视 时 它 提 高 了 处 理 能 力. 当 渲 染 为 可 视 时, 设 定 LEGEND 元 素 的 align 特 性 可 以 使 之 对 齐 于 FIELDSET.?!-- the name was changed from CAPTION since a major vendor reported implementation difficulties in using CAPTION for both FIELDSET and TABLE, apparently associated will error recovery code -->
在 此 例 程 中, 我 们 建 立 一 种 将 在 医 生 办 公 室 填 写 的 表 单. 它 被 分 成 三 部 分: 个 人 信 息, 病 史 和 目 前 病 历. 每 个 部 分 包 含 对 输 入 适 当 的 信 息 的 控 制.

<FORM action="..." method="post">

<FIELDSET>

<LEGEND align="top">Personal Information</LEGEND>

Last Name: <INPUT name="personal_lastname" type="text" tabindex="1">

First Name: <INPUT name="personal_firstname" type="text" tabindex="2">

Address: <INPUT name="personal_address" type="text" tabindex="3">

...more personal information...

</FIELDSET>

<FIELDSET>

<LEGEND align="top">Medical History</LEGEND>

<INPUT name="history_illness"?

牋牋牋 type="checkbox"?

牋牋牋 value="Smallpox" tabindex="20"> Smallpox</INPUT>

<INPUT name="history_illness"?

牋牋牋 type="checkbox"?

牋牋牋 value="Mumps" tabindex="21"> Mumps</INPUT>

<INPUT name="history_illness"?

牋牋牋 type="checkbox"?

牋牋牋 value="Dizziness" tabindex="22"> Dizziness</INPUT>

<INPUT name="history_illness"?

牋牋牋 type="checkbox"?

牋牋牋 value="Sneezing" tabindex="23"> Sneezing</INPUT>



...more medical history...

</FIELDSET>

<FIELDSET>

<LEGEND align="top">Current Medication</LEGEND>

Are you currently taking any medication??

<INPUT name="medication_now"?

牋牋牋 type="radio"?

牋牋牋 value="Yes" tabindex="35">Yes</INPUT>

<INPUT name="medication_now"?

牋牋牋 type="radio"?

牋牋牋 value="No" tabindex="35">No</INPUT>



If you are currently taking medication, please indicate

it in the space below:

<TEXTAREA name="current_medication"?

牋牋牋 rows="20" cols="50"

牋牋牋 tabindex="40">

</TEXTAREA>

</FIELDSET>

</FORM>
注 意 在 此 例 中, 我 们 可 以 通 过 在 每 个 在 FIELDSET 中 对 齐 元 素 (通 过 风 格 页), 加 入 脚 本 ( 就 是 说, 只 有 当 他 或 她 打 开 "current medication" 文 本 区 域 表 示 还 在 用 药 中) 等 等 来 提 高 表 单 的 展 现.

给一个元素焦点

在 HTML 活 动 元 素 必 须 由 于 用 户 的 打 算 的 任 务 而 得 到?得 到 焦 点. 例 如, 用 户 必 须 激 活 一 个 由 A 元 素 指 定 的 链 接 来 追 随 指 定 的 链 接. 类 似 的, 用 户 代 理 器 为 输 入 文 字 而 给 一 个 TEXTAREA 赋 于 焦 点.

有 数 个 方 法 把 焦 点 赋 于 一 个 元 素:

  • 通 过 定 位 设 备 指 定 元 素.
  • 从 一 个 元 素 通 过 键 盘 导 航 到 下 一 个. 文 档 作 者 可 以 定 义 一 个 制 表 键 次 序 来 指 定 用 户 通 过 键 盘 来 导 航 (制表键导航) 的 话 哪 个 元 素 得 到 焦 点. 一 旦 选 中, 一 个 元 素 可 以 被 其 它 的 键 顺 序 来 激 活.
  • 通 过 一 系 列 键 事 件 来 选 择 一 个 元 素 被 称 为 一 个 热键?/A> (有 时 也 叫 做 "键 盘 热 键" 或 "键 盘 加 速").

制表键导航

特 性 定 义
tabindex = integer
这 个 特 性 指 定 了 当 前 元 素 在 当 前 文 档 制 表 键 次 序 中 的 位 置. 这 个 值 可 以 是 正 的 或 负 的 整 数.
制 表 键 次 序 指 定 了当 用 户 通 过 键 盘 导 航 时 哪 个 元 素 将 得 到 焦 点. 制 表 键 次 序 可 以 在 其 它 嵌 套 元 素 中 间 包 含 元 素.

应 当 被 用 户 代 理 器 导 航 获 得 焦 点 的 元 素 根 据 下 列 原 则:

  1. 那 些 提 供 tabindex 特 定 和 指 定 正 数 值 的 元 素 首 先 被 导 航. 导 航 从 具 有 最 低 tabindex 值 的 元 素 向 具 有 最 高 值 的 进 行. 值 无 需 按 次 序 也 能 以 任 何 的 特 定 值 开 始. 具 有 标 志 性 的 tabindex 元 素 在 它 们 显 示 的 文 档 中 按 次 序 被 导 航.
  2. 那 些 没 有 定 义 tabindex 特 性 或 不 提 供 往 下 导 航 的 元 素. 这 些 元 素 以 它 们 在 文 档 中 的 显 示 次 序 被 导 航.
  3. 那 些 提 供 tabindex 值 和 分 配 了 导 航 值 的 元 素 不 参 与 制 表 键 导 航.
  4. disabled 的 元 素 不 参 见 制 加 键?导 航.
下 面 的 元 素 支 持 tabindex 特 性: A, AREA, OBJECT, INPUT, SELECT, TEXTAREABUTTON. 在 此 例?中, 制 表 键 次 序 为 BUTTON, 然 后 是 INPUT 元 素(注 意"field1" 和 按 钮 共 享 共 一 个 键 表 键 索 引, 但 "field1" 出 现 于 文 档 的 后 部), 最 后 是 由 A 元 素 建 立 的 链 接.
<HTML>

<BODY>

...some text...

Click to go to the?

<A tabindex="10" href="http://www.w3.org/">W3C Website.</A>

...some more...

<BUTTON type="button" name="get-database"

牋牋牋牋牋 tabindex="1" onclick="get-database">

Click me to receive the current database.

</BUTTON>

...some more...

<FORM action="..." method="post">

<INPUT tabindex="1" type="text" name="field1">

<INPUT tabindex="2" type="text" name="field2">

<INPUT tabindex="3" type="submit" name="submit">

</FORM>

</BODY>

</HTML>
制 表 键. 在 用 户 的 定 义 中 的 实 际 的 键 次 序 引 起 制 表 键 导 航 或 元 素 的 激 活 (例 如 "tab" 键 用 来 导 航 而 "enter" 则 与 激 活 选 定 元 素 相 关).

用 户 代 理 器 也 可 以 定 义 一 个 键 次 序 来 相 反 的 导 航 制 表 键 次 序. 当 到 达 制 表 键 次 序 的 最 后 ( 或 开 始 时), 用 户 代 理 器 会 绕 转 到 开 始 (或 结 尾).

热键

特 性 定 义accesskey = cdata
这 个 特 性 分 配 一 个 热 键 给 一 个 元 素. 一 个 热 键 是 来 自 于 用 户 代 理 器 当 前 字 符 集 的 单 个 字 符. 用 户 代 理 器 应 当 把 这 个 特 性 作 为 大 小 写 无 关 来 对 待.
按 动 指 定 给 元 素 的 处 理 值 则 赋 于 此 元 素 焦 点. 当 元 素 接 到 焦 点 时 根 据 元 素 激 活 其 应 当 的 方 式. 通 过 A 定 义 的 链 接 通 常 被 用 户 代 理 器 跟 随, 激 活 单 先 钮 则 改 变 值, 有 焦 点 的 文 本 域 则 允 许 用 户 输 入, 等 等.

这 列 的 元 素 支 持 accesskey 特 性: LABEL, A, CAPTIONLEGEND. 这 个 例 程 指 定 热 键 "U" 给 一 个 联 系 于INPUT 控 件 的 标 签. 键 入 热 键 则 把 焦 点 发 送 到 标 签 并 依 次 给 予 相 关 的 控 件. 然 后 用 户 可 以 INPUT 区 域 中 输 入 文 字.

<FORM action="..." method="post">

<LABEL for="user" accesskey="U">

User Name

</LABEL>

<INPUT type="text" name="user">

</FORM>
在 此 例 中, 我 们 为 一 个 通 过 A 元 素 定 义 的 链 接 分 配 一 个 热 键. 键 入 此 键 可 以 把 用 户 带 到 另 一 个 文 档, 在 此 例 中 是 一 个 目 录 表 格.
<A accesskey="C"?

牋 href="http://somplace.com/specification/index.html">

 Table of Contents</A>
热 键 的 实 现 取 决 于 下 层 系 统. 例 如, 在 运 行 MS Windows 的 机 构 上, 某 人 通 常 键 下 "alt" 键 作 为 额 外 的 热 键. 在 Apple 系 统 中, 某 人 通 常 按 下 "cmd" 键 作 为 额 外 的 热 键.

对 于 热 键 的 处 理 取 决 于 用 户 代 理 器. 我 们 建 议 用 户 在 标 签 中 包 含 热 键 或 指 明 提 供 的 热 键. 用 户 代 理 器 会 以 一 种 强 调 的 区 别 于 其 它 字 符 的 方 式 来 渲 染 热 键 的 角 色 (例 如 下 划 线).

禁止和只读元素

哪 里 的 用 户 输 入 对 上 下 文 来 说 是 不 希 望?的 或 不 相 干,?能 够 禁 止 一 个 元 素 或 以 只 读 方 式 渲 染 一 个 元 素 是 重 要 的. 例 如, 某 人 可 能 希 望 禁 止 一 个 表 单 的 提 交 按 钮 直 到 某 些 需 要 的 数 据 被 输 入. 类 类 似 的, 一 个 作 者 可 能 希 望 包 含 一 条 只 读 文 字 并 必 须 能 够 作 为 一 个 值 与 表 单 一 起 被 提 交. 下 面 的 章 节 描 述 了 禁 止 的 和 只 读 的 元 素.

禁止元素

特 性 定 义
disabled
当 为 一 个 表 单 元 素 设 定 时, 这 个 布 尔 特 性 禁 止 控 件 被 用 户 输 入.

当 设 定 时, the disabled 特 性 具 有 下 列 对 元 素 的 影 响:

  • 禁 止 的 元 素 不 接 收 焦 点.
  • 禁 止 的 元 素 在 制 表 键 导 航 中 被 忽 略.
  • 禁 止 的 控 件 的 值 不 与 表 单 一 起 被 提 交.
下 列 的 元 素 支 持 disabled 特 性: INPUT, TEXTAREA, SELECT, OPTION, OBJECT, LABELBUTTON.

禁 止 元 素 如 何 被 渲 染 取 决 于 用 户 代 理 器. 例 如, 某 些 用 户 代 理 器 通 过 "gray out" 来 禁 止 下 拉 框 条 目, 按 钮 标 签 等 等. 在 此 例 中, 禁 止 的 INPUT 元 素 无 法 收 到 用 户 输 入 并 且 值 不 与 表 单 被 提 交.

<INPUT disabled name="fred" value="stone">
注 意: 唯 一 能 够 动 态 修 改 disabled 特 性 的 值 的 方 法 是 通 过 一 段 脚 本.

只读元素

特 性 定 义
readonly
当 为 表 单 控 件 设 定 时, 这 个 布 尔 特 性 禁 止 控 件 的 改 变.
readonly 特 性 指 定 元 素 是 否 可 以 被 用 户 修 改.

当 设 定 时, readonly 特 性 对 一 个 元 素 有 下 列 的 影 响:

  • 只 读 元 素 获 得 焦 点 但 不 能 被 用 户 修 改.
  • 只 读 元 素 包 括 制 表 键 导 航.
  • 只 读 元 素 的 值 与 表 单 一 起 被 提 交.
下 面 的 元 素 支 持 readonly 特 性: INPUT, TEXT, PASSWORD TEXTAREA.

只 读 元 素 如 何 被 渲 染 取 决 于 用 户 代 理 器. 注 意: 动 态 修 改 readonly 特 性 的 值 的 唯 一 方 法 是 通 过 一 段 脚 本.

表单提交

哪个元素值 被 提交了

并 非 所 有 元 素 和 它 们 的 值 与 表 单 被 提 交. 一 致 性 用 户 代 理 器 应 当 提 交:
前页后页目录元素特性