ID элементов

Прислано: steel.ne

чт, 15/03/2007 - 16:53

Другие статьи по теме:

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

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

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

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Dan в чт, 15/03/2007 - 17:22.

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


Опубликовано steel.ne в чт, 15/03/2007 - 18:33.

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

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

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

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


Опубликовано Dan в чт, 15/03/2007 - 20:17.

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

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


Опубликовано steel.ne в пт, 16/03/2007 - 09:00.

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


Опубликовано B.X в пт, 16/03/2007 - 12:49.

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

хорошо сказано...


Опубликовано Dan в пт, 16/03/2007 - 13: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));
}
?>


Опубликовано steel.ne в пн, 19/03/2007 - 08:20.

И так криво, и эдак криво :). Но все равно спасибо - хоть не ругается теперь.


Новое на сайте

Ссылки партнёров