Как добавить классы в тег параметра формы без JS? На данный момент в API формы я могу передать массив с ключами, как это
array(
'0' => 'option 0',
'1' => 'option 1',
)
и я получу HTML, как это
<option value="0">option 0</option>
<option value="1">option 1</option>
Есть ли способ сделать что-то вроде этого:
array(
array(
'value' => 0,
'text' => 'option 0',
'class' => 'bob 0',
),
array(
'value' => 1,
'text' => 'option 1',
'class' => 'bob 1',
),
)
а затем получить это
<option value="0" class="bob 0">option 0</option>
<option value="1" class="bob 1">option 1</option>
Ответы:
К сожалению, это не очень легко с помощью API формы в настоящее время.
Существует проблема, связанная с добавлением этой функциональности (вплоть до 2008 года), которая теоретически позволила бы вам сделать что-то вроде этого:
Но, к сожалению, на данный момент к этой проблеме не прилагается ничего, кроме неудачных исправлений.
Единственный способ сделать это в данный момент - добавить
#process
функцию к элементу select и добавить класс (ы) к каждой опции, когда они разбиты по отдельности.источник
Поэтому я не смог сделать полностью гибкую опцию, но вот способ добавить классы в
options
тег на основе значения опции. Это работает, но переопределяяtheme_select
функцию, чтобы использовать мою собственную версиюform_select_options
источник
На самом деле есть способ переопределить отдельные
option
элементы. Тем не менее, я не уверен, работает ли он в Drupal 7.Вот код, который работает в Drupal 8. Возможно, стоит попробовать.
Я надеюсь, что это помогает. Ура! В качестве альтернативы, перейдите на одно из других решений.
источник