代码之家  ›  专栏  ›  技术社区  ›  miojamo

双ID的W3C验证php

  •  0
  • miojamo  · 技术社区  · 14 年前

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

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

    有办法解决那个问题吗?

    4 回复  |  直到 12 年前
        1
  •  2
  •   2371    14 年前

    为每个元素指定一个唯一的ID或使用 name 属性。

        2
  •  1
  •   SW4    14 年前

    是否有特殊原因需要多次生成同一ID?如果在某种程度上需要,你能不能简单地为两者复制一个ID的特定部分,并添加一个额外的惟一标识符?随后可以提取相关部分。

    例如,在id前面加上元素所在的页/窗体的名称。

    也就是说,这听起来像是有一个问题的方法和方法在这里,有什么具体的原因,你不能有不同的ID?

    http://www.w3.org/TR/html4/struct/global.html#h-7.5.2

        3
  •  0
  •   Gordon Haim Evgi    14 年前

    请参阅 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 相反。此属性不必是唯一的。

        4
  •  0
  •   Halil Özgür    14 年前

    如果不完全需要,不要使用id。试着用名字和类来获取它们。