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';