<label>中的HTML for =”属性是什么?


84

我已经在jQuery中看到了-它有什么作用?

<label for="name"> text </label>
<input type="text" name="name" value=""/>

15
您在jQuery的哪里看到过?
VisioN 2012年

2
可能采用jquery的某些内联样式。许多jquery使用它来定义html页面中的要求
Vivek Dragon 2012年

12
上一行不是jquery的html的一部分
只需

Answers:


26

要关联<label><input>元素,你需要给<input>一个id属性。该<label>则需要for其属性value是一样的输入的id

<label for="username">Click me</label>
<input type="text" id="username">

for属性将a<label><input>元素关联;它具有一些主要优点:
1.标签文本不仅在视觉上与其对应的文本输入相关联;它也以编程方式与之关联。这意味着,例如,当用户专注于表单输入时,屏幕阅读器将读出标签,从而使辅助技术用户更容易理解应输入哪些数据。
2.您可以单击关联的标签来聚焦/激活输入以及输入本身。这种增加的点击区域为尝试激活输入的任何人(包括使用触摸屏设备的用户)提供了优势。

或者,您可以<input>直接将嵌套在中<label>,在这种情况下,由于关联是隐式的,因此不需要forid属性:

<label>Click me <input type="text"></label>

注意:
一个input标签可以与多个标签关联。
<label>被点击或轻敲并与表单控件关联,所产生的点击事件也引发了相关的控制。

无障碍问题

不要在标签内放置诸如锚点或按钮之类的交互式元素。这样做使人们很难激活与标签关联的表单输入。

标题

将标题元素放置在<label>干扰物内会干扰多种辅助技术,因为标题通常用作导航辅助。如果标签的文本需要进行视觉调整,请改用应用于<label>元素的CSS类。
如果表单或表单的一部分需要标题,请使用<legend>放置在中的元素<fieldset>

纽扣

<input>具有type="button"声明和有效value属性的元素不需要与之关联的标签。这样做实际上可能会干扰辅助技术解析按钮输入的方式。<button>元素同样如此。

参考:https : //developer.mozilla.org/en-US/docs/Web/HTML/Element/label


135

for属性用于标签中。它指的是与此标签关联的元素的ID。

例如:

<label for="username">Username</label>
<input type="text" id="username" name="username" />

现在,当用户用鼠标单击username文本时,浏览器将自动将焦点放在相应的input字段中。这也适用于其他输入元素,例如<textbox><select>

引用规范

此属性将要定义的标签与另一个控件明确关联。如果存在,则此属性的值必须与同一文档中其他控件的id属性的值相同。如果不存在,则定义的标签将与元素的内容相关联。

至于为什么用jQuery标记您的问题,以及您在哪里看到它在jQuery中使用,我无法回答,因为您没有提供太多信息。

也许它在jQuery选择器中用于给定标签实例的情况下找到相应的输入元素:

var label = $('label');
label.each(function() {
    // get the corresponding input element of the label:
    var input = $('#' + $(this).attr('for'));
});

7
只是一个旁注。它还用于新<output>元素。MDN参考
Christofer Eliasson,2012年

13

我觉得有必要回答这个问题。我也有同样的困惑。

<p>Click on one of the text labels to toggle the related control:</p>

<form action="/action_page.php">
  <label for="female">Male</label>
  <input type="radio" name="gender" id="male" value="male"><br>
  <label for="female">Female</label>
  <input type="radio" name="gender" id="female" value="female"><br>
  <label for="other">Other</label>
  <input type="radio" name="gender" id="other" value="other"><br><br>
  <input type="submit" value="Submit">
</form>

我将“男性”标签上的for属性更改为女性。现在,如果您单击“男性”,将检查“女性”广播。

就那么简单。



5

您可以将其与标签一起使用,说两个对象属于同一对象。

<input type="checkbox" name="remember" id="rememberbox"/>
<label for="rememberbox">Remember your details?</label>

这也意味着单击该标签将更改复选框的值。



3

标签的for属性<label>应等于相关元素的id属性,以将它们绑定在一起。


3

仅供参考-如果您在打字稿环境中,例如

<label for={this.props.inputId}>{this.props.label}</label>

您需要使用htmlFor

<label htmlFor={this.props.inputId}>{this.props.label}</label>

1

它用于 <label>用于html的文本中

例如。

<label for="male">Male</label>

<input type="radio" name="sex" id="male" value="male"><br>

1
您没有回答问题,OP并未询问其用途?
cyber8200 '17

1

它将标签与输入元素相关联。HTML标签旨在向各种类别的用户传达特殊含义。标签的含义如下:

  1. 对于行动不便的人(也适用于普通鼠标用户):可以单击正确使用的标签来访问相关的表单控件。例如。用户可以单击更容易单击的标签并切换复选框,而不必特别单击复选框。
  2. 对于视力不佳的用户:视力不佳的用户使用屏幕阅读器,该阅读器会在关注表单控件时读取关联的标签标签。它可以帮助用户了解他们否则看不见的标签。

有关标签的更多信息-> https://www.w3.org/TR/WCAG20-TECHS/H44.html


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.