双ID的W3C验证php

时间:2010-11-09 10:49:40

标签: php w3c

我必须在网站的两个部分使用ID生成的表单元素。

问题是ID被加倍并且W3C显示错误

有没有办法省略这个问题?

4 个答案:

答案 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。尝试使用名称和类来获取它们。