在HTML标准中,为什么HTML label
元素在已经具有for
属性时为其定义了form
属性?它的目的是什么?
如果我有一个标签元素,其中子内容是输入类型或for
属性被用于form
属性有什么用途?
例如,在下面的每个label
场景中,通过查看子元素或父元素,可以知道“拥有形式”。是否存在另一种情况,label
具有form
属性既有用又不会增加混乱?
<body>
<form action="#" id="form-one" method="post">
<label>Dog name<input type="text" id="tb-dog-name"></label>
<button type="submit" id="form-one-submit">Post Dog Name</button>
</form>
<form action="#" id="form-two" method="post">
<label for="tb-cat-name">Cat name</label>
<input type="text" id="text-box-two">
<button type="submit" id="form-two-submit">Post Cat Name</button>
</form>
<label for="tb-pizza">How much do you like pizza?</label>
<input type="text" id="tb-pizza" form="form-three">
<form action="#" id="form-three" method="post">
<button type="submit" id="form-three-submit">Share your love!</button>
</form>
</body>
答案 0 :(得分:1)
正如MDN所述:
表单(HTML5)与label元素关联的表单元素 (其形式所有者)。属性的值必须是a的ID 同一文件中的元素。如果未指定此属性,则为此 element必须是元素的后代。 :此 使用属性可以将标签元素放在a中的任何位置 文档,而不仅仅是其表单元素的后代。
Additionally:默认情况下,与表单相关的元素(按钮字段集输入keygen标签对象输出select textarea img)与其最近的祖先表单元素(如下所述)相关联,但是,如果它是可重新关联的(按钮fieldset输入keygen标签对象输出select textarea),可以指定一个表单属性来覆盖它。