ID элементов
Прислано: steel.ne
чт, 15/03/2007 - 16:53
Столкнулся с такой фишкой - на главной странице сайта есть две формы - форма поиска и входа пользователя. Элементы submit в этих формах имеют одинаковый атрибут id="edit-submit".
Естественно на это ругается валидатор w3c. Еще он правда ругается на размещение ul внутри span, но это решаемо. Такая же ругань например на www.drupal.org. И на drupal.ru.
Как с этим мирится сообщество?
- steel.ne's blog
- Для комментирования войдите или зарегистрируйтесь
Размещение ul внутри span - это проблема темы (или модуля, например dhtml_menu).
А вот про ID формы самому интересно. Ибо получается, что валидны только страницы с одной и менее кнопок :)))
- Для комментирования войдите или зарегистрируйтесь
Пока что подпатчил модуль search, хотя тоже с непредсказуемым результатом.
$form['submit'] = array('#type' => 'submit', '#value' => t('Search'), '#id' => 'edit-search-form-submit');
Добавил #id в надежде что он попадет в выходную форму. Получилось, что id вообще пропал. Что в принципе тоже устраивает. Надо втыкать в form.inc.
Что самое интересное - всем остальным элементам формы назначается правильный ID, включающий в себя название формы.
- Для комментирования войдите или зарегистрируйтесь
Значит проблема только с модулем search?
Тогда может будет достаточно темизации ф-ции theme_search_theme_form?
- Для комментирования войдите или зарегистрируйтесь
не, проблема глобальная. Просто гнусно подпатчив модуль, я временно обошел ее, поскольку у меня больше форм особо не предвидится.
- Для комментирования войдите или зарегистрируйтесь
"Просто гнусно подпатчив модуль, я временно обошел ее"
хорошо сказано...
- Для комментирования войдите или зарегистрируйтесь
Есть патч. Для всех кнопок (см. 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));
}
?>- Для комментирования войдите или зарегистрируйтесь
И так криво, и эдак криво :). Но все равно спасибо - хоть не ругается теперь.
- Для комментирования войдите или зарегистрируйтесь


Комментарии