在标签和输入上使用 id 标签有啥区别? [复制]

Posted

技术标签:

【中文标题】在标签和输入上使用 id 标签有啥区别? [复制]【英文标题】:What is the difference between using the id tag on a label and an input? [duplicate]在标签和输入上使用 id 标签有什么区别? [复制] 【发布时间】:2019-10-14 05:20:46 【问题描述】:

我对此的理解是,如果您将 id 用于输入,它会链接到相应标签的“for”属性。但是,我不确定它在相反的情况下是如何工作的。

我对 name 属性的理解是将该名称发送到服务器,但在您制作复选框的情况下,value 属性正在执行此任务。我是否在这里将一个简单的概念过于复杂化了?

【问题讨论】:

是的,你把一个简单的概念复杂化了:)。 ID 唯一标识 DOM 中的元素。这就是他们所做的一切。 for 属性使用该事实允许将label 语义链接到表单元素。它说,“这是该元素的标签”。就是这样。 name 属性实际上是用在复选框上,用于向服务器发送适当的值。如果您不提供,则不会发送该值。 @HereticMoney 谢谢你把它弄明白了。使用输入时 value 属性执行什么任务? 它提供了价值。基本上,当从表单向服务器发送数据时,html 必须为服务器提供元素的名称及其值。回到最开始,这是通过使用查询字符串的 URL 完成的; ?isChecked=true 的东西。元素的名称用于isCheckedtrue 是值。 @HereticMonkey 谢谢。 【参考方案1】:

标签有 2 个主要功能:向 HTML 标识标签的用途,在大多数常见浏览器中单击标签会将焦点设置为输入。以下是可能的情况。请记住,将输入的 id 和 name 设置为相同的值通常是最简单的。

不会将标签链接到输入:

<label for="myInput">My Input</label>
<input name="myInput">

不会将表单数据发送到服务器(通过 id 包含的自定义 AJAX 对象除外):

<label for="myInput">My Input</label>
<input id="myInput">

也不会将标签链接到输入(因为需要是 id,而不是名称):

<label for="input">My Input</label>
<input name="input" id="myInput">

正确:

<label for="myInput">My Input</label>
<input name="myInput" id="myInput">

对于不匹配的名称/ID 也是正确的:

<label for="myInput">My Input</label>
<input name="input" id="myInput">

【讨论】:

以上是关于在标签和输入上使用 id 标签有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

帝国CMS中的标签是如何输入?是否手工一个代码一个代码的输入?还有怎样区别万能标签和灵动标签?

动态设置背景图像或创建 img 标签有啥区别? [复制]

特征和标签有啥区别? [关闭]

表单中<label>标签有啥用?

<label>标签有啥用

HTML 中的name属性和id属性有啥区别?