J'essaie d'ajouter l'attribut d'espace réservé à tous les champs de texte de mon site Web, mais je n'ai pas de chance.
J'ai créé un module qui remplace 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"]);
}
}
}
Je dois vous dire que j'utilise également le module de formulaire Web.
Modifiez-le légèrement en ....
$value
dans foreach scope, le type de valeur n'est pas une référence.MODIFIER:
Je viens d'expérimenter avec le code suivant et j'ai réussi à itérer récursivement l'ensemble du formulaire pour que les champs de texte modifient leurs attributs.
la source
Vous pourriez probablement le faire avec
hook_form_alter
ouhook_form_FORM_ID_alter
et en ajoutant l' attribut "placeholder"par exemple, non testé, mais quelque chose comme:
Recherchez l'élément de formulaire masqué dans le formulaire HTML nommé
form_id
pour obtenir l'ID de formulaire correct pour leform_alter
nom de la fonction.la source
Une meilleure approche du code de Josua Pedersen:
la source
Dans votre code, vous modifiez la variable
$value
qui ne sera plus jamais associée à la variable$form
, laquelle est transmise par référence.En clair, vous apportez quelques modifications mais ne les renvoyez pas à Drupal.
De plus, vous pouvez le faire comme ça (je ne l'ai pas testé mais en théorie ça devrait marcher).
J'étais juste paresseux pour ajouter un chèque
fieldset
et ajouter un espace réservé aux enfants. Mais je suppose que vous pouvez le changer très facilement.la source
Une légère amélioration de la solution de fichier modèle de @ Josua: ce code ajoutera également du texte d'espace réservé aux feilds de messagerie Web.
la source
en utilisant hook_form_alter essayez ceci
la source
Pour toute personne utilisant une version plus ancienne ou obsolète du module Webform de Drupal , il convient de noter que la prise en charge des espaces réservés a été ajoutée dans le
7.x-4.x branch
(juin 2013).Ainsi, la fonctionnalité d'espace réservé HTML5 est maintenant une option native intégrée, avec des classes CSS personnalisées pour les composants et plusieurs autres fonctionnalités demandées depuis longtemps.
Voici une capture d'écran de l'apparence de la nouvelle fonctionnalité:
la source
Dans la plupart des cas, je suppose, on ne voudrait ajouter des attributs d'espace réservé sur certains formulaires.
Si vous souhaitez ajouter un espace réservé à tous les formulaires Web, vous pouvez le faire comme ceci:
la source
Utilisez simplement le module pour cela: Webform Hints
C'est exactement ce dont vous avez besoin. C'est facile à gérer et il n'y a pas besoin de code personnalisé. Ce module prend également en charge les navigateurs hérités qui ne prennent pas en charge l'attribut d'espace réservé.
la source