Javascript 影响输入元素处理的ID
我正试图在一系列表单上解决验证问题。出现的主要错误是输入元素(如按钮)上的ID重复 这是一条信息: 错误:重复ID我的ID 来自第258行第25列;至第258行第96列 这是一个按钮的示例Javascript 影响输入元素处理的ID,javascript,html,forms,input,Javascript,Html,Forms,Input,我正试图在一系列表单上解决验证问题。出现的主要错误是输入元素(如按钮)上的ID重复 这是一条信息: 错误:重复ID我的ID 来自第258行第25列;至第258行第96列 这是一个按钮的示例 <input type="submit" name="Submit" id="Submit"/> 我知道ID有时可以用于JavaScript处理,但是ID是否会影响表单处理元素的方式?我还有隐藏输入元素的ID <input type="hidden" name="value" id="
<input type="submit" name="Submit" id="Submit"/>
我知道ID有时可以用于JavaScript处理,但是ID是否会影响表单处理元素的方式?我还有隐藏输入元素的ID
<input type="hidden" name="value" id="value" value="5"/>
粗暴地说,即使使用JavaScript,我也不需要与他们交谈,如果它们被隐藏了,就没有什么可供设计的了?
如果我们假设我没有使用脚本,只是发布了一个标准表单,那么id是否会对其产生任何影响,因此可以安全地将其更改为唯一或删除?anserw is no-id属性不会影响表单 你的错误很明显。在HTML结构的某个地方,您定义了两个(或更多)具有相同ID的元素。
由于我不知道您的文件的第258行中有什么内容,因此我无法提供更多帮助。anserw is no-id属性不影响表单 你的错误很明显。在HTML结构的某个地方,您定义了两个(或更多)具有相同ID的元素。
由于我不知道您的文件第258行中有什么内容,我只能这样做。理论上,id对父表单元素处理输入的方式没有影响,这是通过传递给
POST
或GET
的name
属性完成的。
如果您没有在自己的脚本中包含任何Javascript库或引用ID,那么您可以更改ID以将其唯一化。理论上,ID对父表单元素处理输入的方式没有影响,这是通过传递给
POST
或GET
的name
属性完成的。
如果您没有在自己的脚本中包含任何Javascript库或引用ID,那么您可以更改ID以将其唯一化。这对您的表单来说不是问题,浏览器也从来没有使其成为问题 然而,您的IDE/编辑器抱怨它是正确的,因为它不是应该如何使用它们 但是它会造成伤害吗?通常不会。最坏的情况是选择了错误的元素 QuerySelectorAll和CSS甚至不关心,但jQuery关心:
这对表单来说不是问题,浏览器也从来没有让它成为问题 然而,您的IDE/编辑器抱怨它是正确的,因为它不是应该如何使用它们 但是它会造成伤害吗?通常不会。最坏的情况是选择了错误的元素 QuerySelectorAll和CSS甚至不关心,但jQuery关心:
错误来自何处(控制台/验证器?),您能否提供准确的错误消息?这将使评估问题变得更容易。好的。已编辑的问题,id必须是唯一的,您可以使用类来解决此问题。错误来自何处(控制台/验证器?),是否可以包含确切的错误消息?这将使评估问题变得更容易。好的。已编辑的问题,id需要唯一,您可以使用类解决此问题。我知道我有两个重复的id,但如果它们不影响表单,则应安全地将其更改为“使其唯一”或将其删除。是吗?是的。表单元素不关心其中元素的ID。所有ID都必须是唯一的,这基本上就是你需要知道的一切;)你能想到任何情况下隐藏的输入需要一个ID吗?你不需要设置它的样式,我可以想出任何需要用脚本与它对话的理由吗?我会选择ID属性,以防我必须经常搜索这个元素(因为document.getElementById是最快的选择器)出于某种原因,使用JS来实现它。在其他情况下,您应该只依赖css类。不建议只为元素设置ID来设置样式。有一些使用Javascript选择隐藏输入的用例。例如,可以在呈现表单时为用户创建唯一标识符,并将其设置为隐藏输入
值
属性。然后当用户提交他们的数据时,您的自动生成的ID将包含在他们的数据中。我知道我有两个重复的ID,但如果它们不影响表单,则应该安全地将它们更改为唯一或删除它们。是吗?是的。表单元素不关心其中元素的ID。所有ID都必须是唯一的,这基本上就是你需要知道的一切;)你能想到任何情况下隐藏的输入需要一个ID吗?你不需要设置它的样式,我可以想出任何需要用脚本与它对话的理由吗?我会选择ID属性,以防我必须经常搜索这个元素(因为document.getElementById是最快的选择器)出于某种原因,使用JS来实现它。在其他情况下,您应该只依赖css类。不建议只为元素设置ID来设置样式。有一些使用Javascript选择隐藏输入的用例。例如,可以在呈现表单时为用户创建唯一标识符,并将其设置为隐藏输入值
属性。然后当用户提交他们的数据时,自动生成的ID将包含在他们的数据中。这不是关于chrome,而是关于querySelectorAll“返回文档中与指定CSS选择器匹配的所有元素”,所以这没有错,这就是它的指定方式。我知道我不会引起问题,但它违反了W3C标准,尽管页面正常工作,但至少如果您的页面验证它看起来很专业,也意味着您的代码实际上是在告诉浏览器该做什么,而不是让浏览器去猜测。@grzesiekgs-我会对我的帖子进行微妙的调整,谢谢你让我知道,我们