Wie kann ich einem Formularoptions-Tag ohne JS Klassen hinzufügen? Im Moment kann ich in der Formular-API ein solches verschlüsseltes Array übergeben
array(
'0' => 'option 0',
'1' => 'option 1',
)
und ich werde html so bekommen
<option value="0">option 0</option>
<option value="1">option 1</option>
Gibt es eine Möglichkeit, wie folgt vorzugehen:
array(
array(
'value' => 0,
'text' => 'option 0',
'class' => 'bob 0',
),
array(
'value' => 1,
'text' => 'option 1',
'class' => 'bob 1',
),
)
und dann hol das
<option value="0" class="bob 0">option 0</option>
<option value="1" class="bob 1">option 1</option>
Antworten:
Leider ist dies mit der Formular-API derzeit nicht sehr einfach.
Es ist noch ein Problem offen, um diese Funktionalität hinzuzufügen (sie reicht bis ins Jahr 2008 zurück), mit der Sie theoretisch Folgendes tun können:
Leider sind dem Problem im Moment nur fehlerhafte Patches beigefügt.
Die einzige Möglichkeit, die mir derzeit in den Sinn kommt, besteht darin
#process
, dem select-Element eine Funktion hinzuzufügen und die Klassen zu jeder Option hinzuzufügen, wenn sie einzeln aufgeschlüsselt sind.quelle
Daher konnte ich die vollständig flexible Option nicht ausführen, aber hier ist eine Möglichkeit, dem
options
Tag basierend auf dem Optionswert Klassen hinzuzufügen . Es funktioniert, überschreibt aber dietheme_select
Funktion, um meine eigene Version von zu verwendenform_select_options
quelle
Es gibt tatsächlich eine Möglichkeit, einzelne
option
Elemente zu überschreiben . Ich bin mir jedoch nicht sicher, ob es in Drupal 7 funktioniert.Hier ist ein Code, der in Drupal 8 funktioniert. Könnte einen Versuch wert sein.
Ich hoffe, es hilft. Prost! Alternativ können Sie sich für eine der anderen Lösungen entscheiden.
quelle