我必须在网站的两个部分使用ID生成的表单元素。
问题是ID被加倍并且W3C显示错误
有没有办法省略这个问题?
答案 0 :(得分:2)
为每个元素分配唯一ID,或使用name
属性。
答案 1 :(得分:1)
是否有特殊原因需要多次生成相同的ID?您是否可以简单地,如果以某种方式需要,为两者复制ID的特定部分,并添加额外的唯一标识符?然后可以在以后提取相关部分。
因此,例如,在id前面添加元素所在的页面/表单的名称。
那就是说,听起来这里的方法和方法存在问题,是否有任何具体原因你不能有不同的ID?
有关详细信息,请参阅此处: http://www.w3.org/TR/html4/struct/global.html#h-7.5.2
答案 2 :(得分:0)
请参阅official W3C specs for the id and class attributes。引用:
属性定义
<强>
id = name [CS]
强>
此属性为元素指定名称。该名称在文档中必须是唯一的。<强>
class = cdata-list [CS]
强>
此属性为元素分配类名称或类名称集。可以为任意数量的元素分配相同的类名或名称。多个类名必须用空格字符分隔。
如您所见,ID可能不一样。验证者不会接受任何其他内容。这不是可以谈判的。如果要创建有效标记,请将ID更改为唯一。就这么简单。
解决此问题的唯一方法是使用您自己的DTD进行验证,不要求ID属性是唯一的。当然,它不会是HTML然后MiojamoML,你必须像这样服务它,你可能会遇到各种浏览器中的一些怪癖然后这样做是不可行的,但事实就是如此。至少如果你想做得好的话。
请注意,如果您的目标是在表单元素上使用命名标识符进行表单提交,那么您应该使用input name attribute
。该属性不必是唯一的。
答案 3 :(得分:0)
如果不是完全需要,请不要使用id。尝试使用名称和类来获取它们。