ID элементов

Главные вкладки

Аватар пользователя steel.ne steel.ne 15 марта 2007 в 19:53

Столкнулся с такой фишкой - на главной странице сайта есть две формы - форма поиска и входа пользователя. Элементы [b]submit[/b] в этих формах имеют одинаковый атрибут [b]id[/b]="edit-submit".

Естественно на это ругается валидатор w3c. Еще он правда ругается на размещение [b]ul[/b] внутри [b]span[/b], но это решаемо. Такая же ругань например на www.drupal.org. И на drupal.ru.

Как с этим мирится сообщество?

Комментарии

Аватар пользователя Dan Dan 15 марта 2007 в 20:22

Размещение ul внутри span - это проблема темы (или модуля, например dhtml_menu).
А вот про ID формы самому интересно. Ибо получается, что валидны только страницы с одной и менее кнопок Lol

Аватар пользователя steel.ne steel.ne 15 марта 2007 в 21:33

Пока что подпатчил модуль search, хотя тоже с непредсказуемым результатом.

$form['submit'] = array('#type' => 'submit', '#value' => t('Search'), '#id' => 'edit-search-form-submit');

Добавил #id в надежде что он попадет в выходную форму. Получилось, что id вообще пропал. Что в принципе тоже устраивает. Надо втыкать в form.inc.

Что самое интересное - всем остальным элементам формы назначается правильный ID, включающий в себя название формы.

Аватар пользователя Dan Dan 15 марта 2007 в 23:17

Значит проблема только с модулем search?

Тогда может будет достаточно темизации ф-ции theme_search_theme_form?

Аватар пользователя steel.ne steel.ne 16 марта 2007 в 12:00

не, проблема глобальная. Просто гнусно подпатчив модуль, я временно обошел ее, поскольку у меня больше форм особо не предвидится.

Аватар пользователя Dan Dan 16 марта 2007 в 16:57

Есть патч. Для всех кнопок (см. Problem with xhtml validation)

<?php
/**
* Correct 'ID "edit-submit" already defined' validation error caused by search forms.
*/
function phptemplate_submit($element) {
srand ((double) microtime( )*1000000);
$random_number = rand(100,999);
return str_replace('edit-submit','edit-submit-'.$random_number,theme('button', $element));
}
?>