Ich versuche, allen Textfeldern auf meiner Website das Platzhalterattribut hinzuzufügen, habe aber kein Glück.
Ich habe ein Modul erstellt, das überschreibt 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"]);
}
}
}
Ich sollte Ihnen sagen, dass ich auch das Webformular-Modul verwende.
Ändern Sie es leicht auf ....
$value
In jedem Bereich ist der Werttyp keine Referenz.BEARBEITEN:
Ich habe gerade mit folgendem Code experimentiert und es ist mir gelungen, das gesamte Formular rekursiv zu durchlaufen, damit Textfelder ihre Attribute bearbeiten können.
quelle
Sie könnten dies wahrscheinlich mit
hook_form_alter
oder tunhook_form_FORM_ID_alter
und das Attribut "Platzhalter" hinzufügenzB ungetestet, aber so ähnlich:
Suchen Sie das ausgeblendete Formularelement im Webformular-HTML mit dem Namen
form_id
, um die richtige Formular-ID für denform_alter
Funktionsnamen abzurufen .quelle
Ein besserer Ansatz für Josua Pedersens Code:
quelle
In Ihrem Code ändern Sie die Variable
$value
, die der Variablen nie wieder zugeordnet wird$form
, die als Referenz übergeben wird.Im Klartext nehmen Sie einige Änderungen vor, senden diese jedoch nicht an Drupal zurück.
Sie können es auch so machen (ich habe es nicht getestet, aber theoretisch sollte es funktionieren).
Ich war nur faul
fieldset
, den Kindern einen Scheck hinzuzufügen und einen Platzhalter hinzuzufügen. Aber ich denke, Sie können es sehr einfach ändern.quelle
Eine leichte Verbesserung der @ Joshua-Lösung für Vorlagendateien: Dieser Code fügt auch Platzhaltertext zu Webform-E-Mail-Feldern hinzu.
quelle
versuche dies mit hook_form_alter
quelle
Wenn Sie eine ältere oder veraltete Version des Drupal-Webform-Moduls verwenden , sollten Sie beachten, dass im Juni 2013 Platzhalter-Unterstützung hinzugefügt wurde
7.x-4.x branch
.Daher ist die HTML5-Platzhalterfunktionalität jetzt eine systemeigene, integrierte Option, zusammen mit benutzerdefinierten CSS-Klassen für Komponenten und mehreren anderen seit langem angeforderten Funktionen.
Hier ist ein Screenshot der neuen Funktionalität:
quelle
In den meisten Fällen würde man vermutlich nur Platzhalterattribute in einigen Formularen hinzufügen wollen.
Wenn Sie allen Webformularen Platzhalter hinzufügen möchten, können Sie dies folgendermaßen tun:
quelle
Nutzen Sie dafür einfach das Modul: Webform-Hinweise
Es ist genau das, was Sie brauchen. Es ist einfach zu verwalten und es ist kein benutzerdefinierter Code erforderlich. Dieses Modul bietet auch Unterstützung für ältere Browser, die das Platzhalterattribut nicht unterstützen.
quelle