我可以有两个具有相同 for
值的标签吗?例如:
<label for="foo">Outer label</label>
<div class="foo-bar">
<input type="checkbox" id="foo" />
<label for="foo">Inner label</label>
</div>
我可以有两个具有相同 for
值的标签吗?例如:
<label for="foo">Outer label</label>
<div class="foo-bar">
<input type="checkbox" id="foo" />
<label for="foo">Inner label</label>
</div>
for
属性将控件与 input
关联起来,据我所知,只要该 input
(或 textarea
、select
等)的 id
是唯一的,就可以有无限个元素链接到它。
例如,在以下演示中,两个 label
元素都将触发复选框 input
元素的更改(选中/取消选中):
<label for="foo">Outer label</label>
<div class="foo-bar">
<input type="checkbox" type="checkbox" name="test" id="foo" />
<label for="foo">Inner label</label>
</div>
这对于添加错误消息(例如,后验证)非常有用,可以明确地链接到或以其他方式标识存在错误的元素,而不会覆盖/替换该元素的预先存在的label
。
不幸的是,就我所知,还没有明确允许将input
(或类似元素)仅链接到一个控件的参考或文档;但是MDN的<label>
条目确实指出:
与标签元素在同一文档中的可标记表单相关元素的ID。文档中第一个具有与for属性值匹配的ID的元素是此标签元素的标记控件。