Удалите красный контур на элементах формы, которые не проходят проверку в Drupal

StackOverflow https://stackoverflow.com/questions/2746220

Вопрос

Когда форма Drupal не проходит проверку, он перерисован с элементами, которые не удалили проверку в красной границе. Drupal делает это, добавив error класс к входным элементам, а также упрощение красной границы 2PX на входных элементах. system.css.

Не модифицируя эту таблицу стилей, как я могу удалить красную рамку только на конкретной форме, при использовании поведения по умолчанию на остальной части сайта?

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

Обратите внимание, что я хотел бы сделать это без необходимости прибегать к этому трюку jQuery (который работает):

$("#edit-name").removeClass('error');
Это было полезно?

Решение

Вам нужно будет удалить класс ошибок из элементов формы. Это можно сделать, перезаписывая тематические функции, в theme_textfield, theme_textarea ... (Есть один для каждого типа)

Взгляни на $element['#attributes']['class'] который содержит класс ошибок.

РЕДАКТИРОВАТЬ
Для этого для конкретной формы элемента или формы вы можете использовать #theme атрибут или форма или элемент, для которого вы хотите изменить функцию тематики.

Другие советы

Самый простой способ не пытаться изменить разметку Drupal обнаруживается, но вместо этого для изменения стилей ассоциированы error класс.

Вы можете сделать это без модификации System.css. Просто добавьте новую таблицу стилей в своей теме (или используя существующий!). Используйте каскадную природу CSS для изменения, как появляются элементы с ошибками. Добавить что-то вроде:

.error {
  border: 0;
}

... и вы сделали.

Чтобы нацелиться только одну конкретную форму, добавьте еще один селектор, например:

#my-specific-form .error {
  border: 0;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top