W3C валидация двойного идентификатора php - PullRequest
0 голосов
/ 09 ноября 2010

Я должен использовать элементы формы, сгенерированные с идентификаторами в двух частях сайта.

проблема в том, что идентификаторы дублируются, а W3C показывает ошибки

есть ли способ устранить эту проблему?

Ответы [ 4 ]

2 голосов
/ 09 ноября 2010

Назначьте уникальный идентификатор каждому элементу или используйте атрибут name.

1 голос
/ 09 ноября 2010

Существует ли какая-то конкретная причина, по которой один и тот же идентификатор необходимо создавать более одного раза? Можете ли вы не просто, если это необходимо каким-либо образом, реплицировать определенную часть идентификатора для обоих и добавить дополнительный уникальный идентификатор? Соответствующая часть может быть извлечена позже.

Так, например, добавьте идентификатор к имени страницы / формы, в которой находится элемент. / 1003 *

Тем не менее, похоже, что здесь есть проблема с методологией и подходом, есть ли какая-то конкретная причина, по которой у вас не может быть разных идентификаторов?

Смотрите здесь для получения дополнительной информации: http://www.w3.org/TR/html4/struct/global.html#h-7.5.2

0 голосов
/ 09 ноября 2010

Не используйте идентификаторы, если это не требуется полностью.Попробуйте получить их, используя имена и классы.

0 голосов
/ 09 ноября 2010

Пожалуйста, обратитесь к официальным спецификациям W3C для атрибутов id и class .Цитирование:

Определения атрибутов

id = name [CS]
Этот атрибут присваивает имя элементу.Это имя должно быть уникальным в документе.

class = cdata-list [CS]
Этот атрибут присваивает элементу имя класса или набор имен классов.Любому числу элементов может быть присвоено одно и то же имя класса или имена.Несколько имен классов должны быть разделены пробелами.

Как видите, идентификатор может не совпадать.Валидатор не примет ничего другого.Это не подлежит обсуждению.Если вы хотите создать действительную разметку, измените идентификаторы на уникальные.Все просто.

Единственный способ обойти это - использовать свой собственный DTD для проверки того, что атрибуты ID не требуют уникальности.Конечно, тогда это будет не HTML, а MiojamoML, и вы должны использовать его как таковой, и тогда вы, скорее всего, столкнетесь с некоторыми причудами в различных браузерах, и это невозможно сделать, но так оно и есть.По крайней мере, если вы хотите сделать это правильно.

Обратите внимание, что если ваша цель состоит в том, чтобы именованные идентификаторы в элементах формы для отправки формы, вы должны использовать вместо этого input name attribute.Этот атрибут не должен быть уникальным.

...