Bagaimana saya bisa menambahkan kelas ke tag opsi formulir tanpa JS? Saat ini di Formulir API saya bisa mengirimkan array yang dikunci seperti ini
array(
'0' => 'option 0',
'1' => 'option 1',
)
dan saya akan mendapatkan html seperti ini
<option value="0">option 0</option>
<option value="1">option 1</option>
Apakah ada cara untuk melakukan sesuatu seperti ini:
array(
array(
'value' => 0,
'text' => 'option 0',
'class' => 'bob 0',
),
array(
'value' => 1,
'text' => 'option 1',
'class' => 'bob 1',
),
)
dan dapatkan ini
<option value="0" class="bob 0">option 0</option>
<option value="1" class="bob 1">option 1</option>
Jawaban:
Sayangnya ini tidak mudah menggunakan Formulir API saat ini.
Ada masalah yang terbuka untuk menambahkan fungsi ini (kembali ke tahun 2008) yang secara teoritis memungkinkan Anda untuk melakukan sesuatu seperti ini:
Namun sayangnya tidak ada yang gagal kecuali patch yang melekat pada masalah saat ini.
Satu-satunya cara saya bisa memikirkan untuk melakukannya saat ini adalah menambahkan
#process
fungsi ke elemen pilih, dan menambahkan kelas (es) ke setiap opsi ketika mereka dipecah secara individual.sumber
Jadi saya tidak bisa menyelesaikan opsi yang sepenuhnya fleksibel, tetapi di sini ada cara untuk menambahkan kelas ke
options
tag berdasarkan nilai opsi. Ini berfungsi tetapi mengesampingkantheme_select
fungsi untuk menggunakan versi saya sendiriform_select_options
sumber
Sebenarnya ada cara untuk mengganti
option
item individual . Namun, saya tidak yakin apakah itu berfungsi di Drupal 7.Berikut beberapa kode yang berfungsi di Drupal 8. Mungkin patut dicoba.
Saya harap ini membantu. Bersulang! Atau, pilih salah satu solusi lain.
sumber