Drupal 7 Форма проверки добавить класс?

В моей форме я создаю флажок

$form['existing_customer'] = array(
'#type' => 'checkbox',
'#title' => t('Are you an existing customer?')
);

Когда я проверяю его с помощью hook_validate, я хотел бы добавить класс к метке? Есть идеи как этого добиться?

2 ответа

Спасибо Клайв сделал довольно неприятную работу вокруг в функции проверки формы

$form_state['complete form']['myselectbox']['#title'] =  '<span class="privacy-error">you did not check me</span>';

Это не красиво, но это работает!

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

Каждый элемент в форме Drupal обернут контейнером (который имеет идентификатор). Внутри этого контейнера всегда будет только одна этикетка.

Так что если вам нужно нацелиться на элемент в CSS или JS, вам просто нужно сделать что-то вроде этого:

#existing-customer-edit label {
  // The rule
}

ИЛИ ЖЕ

$('#existing-customer-edit label').something();

Если вам действительно нужно отредактировать метку вручную, тогда вам нужно будет предоставить собственную тему для этого элемента, посмотрите этот пример для получения дополнительной информации (это для Drupal 6, но концепция в Drupal 7 та же).

Вы можете добавить класс в hook_validate():

$form_state['complete form']['submitted']['existing_customer']['#attributes']['class'][] = 'class_name';
Другие вопросы по тегам