Drupal и ID у элементов формы

13 марта 2011

Я уже писал о том, что мне понравилось работать с формами в системе Друпал. Сейчас повторяюсь. Но по мере осваивания drupal, я стал натыкаться на новые трудности. Да, создавать и обрабатывать формы в друпал очень простая задача. Но все равно оказалось не так все гладко, как хотелось. При программировании я столкнулся с непонятным, на мой взгляд, поведением системы.

Когда я создал форму и вывел ее, я просмотрел html-код формы. И в коде я четко увидел все элементы и идентификаторы и классы CSS, которые система Друпал назначила элементам формы. Наверно, звучит непонятно. Ну для простоты вот часть кода формы:
<input id="edit-name" class="form-text" type="text" size="32" value="" name="name" ?>

Видно, что система назначила идентификатор (id) CSS для этого элемента формы. И я оформил с помощью стиля CSS этот input по своему вкусу и желанию. Всё встало как надо и выглядело, как я и предполагал. Но через некоторое неопределенное время стили как бы перестали применяться к оформлению элементов формы. Первым делом я подумал, что по ошибке затер стили. Но нет, со стилями было все в порядке. И так бы я долго искал причину, если бы не проанализировал элементы в интернет-обозревателе Опера. Оказалось, система друпал по каким-то своим внутренним причинам изменила идентификаторы (ID) CSS у элементов формы. И стали они выглядить вот так:
<input id="edit-name-1" class="form-text" type="text" size="32" value="" name="name" ?>

Еще раз скажу: почему так произошло - я не знаю. Возможно, я изменил модуль, в котором создавалась эта форма, возможно, еще что-то. Поэтому пришлось мне пересматривать весь код модулей с формами и везде, где это необходимо, добавлять #prefix и #suffix для всех элементов формы, которые я индивидуально оформлял или использовал в javascript.

Андрей Лебедев

,

, , , , , , ,

Комментарий

Нет комментарий.

Комментировать: