Saya mencoba menambahkan atribut placeholder ke semua bidang teks di situs web saya, tetapi saya tidak beruntung.
Saya telah membuat modul yang menimpa hook_form_alter
function mymodule_form_alter(&$form, &$form_state, $form_id)
{
foreach ($form as $key => $value) {
if ("textfield" == $value["#type"]){
$value['#attributes']["placeholder"] = t($value["#title"]);
}
}
}
Saya harus memberi tahu Anda bahwa saya juga menggunakan modul webform.
Ubah sedikit menjadi ....
$value
dalam lingkup foreach adalah tipe nilai bukan referensi.EDIT:
Saya baru saja bereksperimen dengan mengikuti kode dan saya berhasil mengulangi seluruh formulir secara textfield untuk mengedit atribut mereka.
sumber
Anda mungkin dapat melakukannya dengan
hook_form_alter
atauhook_form_FORM_ID_alter
dan menambahkan atribut "placeholder"mis. belum diuji, tetapi sesuatu seperti:
Temukan elemen formulir tersembunyi di HTML formulir web yang dinamai
form_id
untuk mendapatkan id formulir yang benar untukform_alter
nama fungsi.sumber
Pendekatan yang lebih baik untuk kode Josua Pedersen:
sumber
Dalam kode Anda, Anda mengubah variabel
$value
yang tidak pernah ketika dikaitkan lagi dengan variabel$form
, yang mana dilewatkan oleh referensi.Secara jelas, Anda membuat beberapa perubahan tetapi tidak mengirimnya kembali ke Drupal.
Juga, Anda dapat melakukannya seperti itu (saya belum mengujinya tetapi secara teori itu harus bekerja).
Saya malas menambahkan cek
fieldset
dan menambahkan placeholder ke anak-anak. Tapi saya kira Anda bisa mengubahnya dengan sangat mudah.sumber
Sedikit perbaikan pada solusi file templat @ Josua: Kode ini juga akan menambahkan teks placeholder ke feild email form web.
sumber
menggunakan hook_form_alter coba ini
sumber
Bagi siapa pun yang menggunakan versi yang lebih lama atau ketinggalan zaman modul Webform Drupal , perlu dicatat bahwa dukungan placeholder telah ditambahkan di
7.x-4.x branch
(Juni 2013).Dengan demikian, fungsionalitas placeholder HTML5 sekarang merupakan opsi bawaan bawaan bersama dengan kelas CSS khusus untuk komponen dan beberapa fitur lain yang telah lama diminta.
Berikut tangkapan layar tentang bagaimana fungsionalitas baru muncul:
sumber
Dalam kebanyakan kasus, saya kira, seseorang hanya ingin menambahkan atribut placeholder pada beberapa formulir.
Jika Anda ingin menambahkan placeholder ke semua formulir web, Anda dapat melakukannya seperti ini:
sumber
Cukup gunakan modul untuk itu: Petunjuk Webform
Ini persis apa yang Anda butuhkan. Mudah dikelola dan tidak perlu kode khusus. Modul ini juga menyediakan dukungan untuk browser lawas yang tidak mendukung atribut placeholder.
sumber