2017-04-25 103 views
0

这最好用一个例子来说明:标签其他标签里面输入 - 这是正确的

<label for="myInput">This is an external label</label> 
 

 
<br> 
 

 
<label> 
 
This label is wrapped arround the input 
 
<input type="text" id="myInput"> 
 
</label>

这是正确的HTML5?我知道多个标签可以指向一个输入字段,但标签只能指向一个字段。在这个例子中,有两个标签指向相同的输入,只有一个标签围绕着输入。

回答

1

这在HTML5中是否正确?

是的。

我明白了多个标签可以在一个输入场点,而是一个标签 只能在一个领域

是的,再点。

从这里的规格:https://www.w3.org/TR/html5/forms.html#the-label-element

的字幕可以用特定的形式控制,被称为 标签元件的标记的对照相关联,或者使用用于属性, 或通过将形式控制内标签元素本身。

当没有for属性和label嵌套与其贴标签的控制,那么第一个这样的后代成为其贴标签的控制。但是,label不应与其他label嵌套。

label.control属性返回与此元素关联的表单控件。反之亦然,.labels是laablable控件的只读属性,它返回该控件上所有适用标签的nodelist

实施例1:

在下面的例子中,input.labels属性返回nodeList它包含两个标签。

var inp = document.getElementById('myInput'); 
 
console.log(inp.labels);
<label for="myInput">This is an external label</label> 
 
<br> 
 
<label> 
 
    This label is wrapped around 
 
    <input type="text" id="myInput"> 
 
</label>


实施例2:

在本例中,我已经有目的地相关联的一个标签到两个输入。看到只有遇到的第一个,即for属性在这里被关联,第二个被忽略,即使它有一个嵌套控件。

var myInput = document.getElementById('myInput'), 
 
    yourInput = document.getElementById('yourInput') 
 
; 
 
console.log(myInput.labels); 
 
console.log(yourInput.labels);
<label for="myInput"> 
 
\t This is an external label 
 
\t <input id="yourInput"> 
 
</label> 
 
<br> 
 
<input type="text" id="myInput">