Secara default, markup HTML untuk tombol radio terlihat seperti (Drupal 7):
<div class="form-item form-type-radio form-item-SOME_ID">
<input id="edit-SOME_ID" class="form-radio" type="radio" value="SOME_VALUE" name="SOME_NAME" />
<label class="option" for="edit-bla-bla">MY LABEL</label>
</div>
Saya perlu mengubah / menambahkan beberapa kelas css di luar <div>
ATAU menambahkan pembungkus <div>
. Bagaimana aku melakukan itu?
Jawaban:
Jika Anda menentukan sendiri formulirnya, Anda bisa membungkus sebuah elemen dengan HTML menggunakan
#prefix
dan#suffix
properti:Jika Anda ingin menambahkan kelas ke pembungkus yang ada, Anda dapat melakukannya menggunakan
#attributes
properti:Jika Anda tidak mendefinisikan formulir sendiri maka Anda masih dapat menggunakan logika yang sama dan menerapkannya
hook_form_alter()
untuk mengubah formulir yang ada:Perhatikan bahwa saat menggunakan
hook_form_alter()
metode ini Anda harus menambahkan ke array kelas yang ada agar tidak menimpa kelas yang telah ditetapkan sebelumnya.sumber
Anda dapat melakukan hal di atas (awalan / akhiran) pada item dalam array opsi kemudian Anda mendapatkan apa pun yang Anda inginkan di sekitar setiap item.
sumber
Saya dapat mencapai ini setelah banyak bekerja dan mencoba setiap metode yang diposting menggunakan tip cerdas yang saya temukan jauh di internet di situs lain: http://e9p.net/altering-individual-radio-or-checkbox-items-drupal- 7-fapi , untuk digunakan
#after_build
untuk dapat mengubah elemen bentuk radio individu setelah mereka adalah array render drupal.Saya ingin setiap radio terbungkus wadah dengan kelas, jadi saya menggunakan
#prefix
dan#suffix
melakukan itu:contoh gunakan:
Namun jika Anda hanya ingin
input
elemen memiliki kelas Anda perlu mengimplementasikan solusi yang saya posting di drupal.org di https://api.drupal.org/comment/60197#comment-60197 untuk memungkinkan #options_attributes digunakan dengan benar untuk opsi individual. Posting ulang kode di sini:contoh gunakan:
sumber
Satu-satunya cara saya bisa mencapai ini adalah dengan membuat elemen bentuk yang berbeda untuk setiap radio, memasangkan secara manual nama-nama menggunakan #name dan secara manual mengatur nilai menggunakan #attributes. (#value tidak berfungsi karena beberapa alasan.)
Sebagai contoh:
Ini akan menambahkan pembungkus dan kelas ke masing-masing tombol radio daripada grup radio seperti jawaban yang diterima saat ini.
sumber