Estoy tratando de agregar el atributo de marcador de posición a todos los campos de texto en mi sitio web, pero no tengo suerte.
He creado un módulo que anula 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"]);
}
}
}
Debo decirle que también estoy usando el módulo de formulario web.
Cambie ligeramente a ...
$value
en cada alcance, el tipo de valor no es una referencia.EDITAR:
Acabo de experimentar con el siguiente código y logré iterar recursivamente todo el formulario para que los campos de texto editen sus atributos.
fuente
Probablemente podría hacer eso con
hook_form_alter
ohook_form_FORM_ID_alter
y agregando el atributo "marcador de posición"por ejemplo, no probado, pero algo como:
Busque el elemento de formulario oculto en el formulario web HTML nombrado
form_id
para obtener la identificación de formulario correcta para elform_alter
nombre de la función.fuente
Un mejor enfoque para el código de Josua Pedersen:
fuente
En su código, cambia la variable
$value
que nunca cuando se asocia de nuevo a la variable$form
, cuál se pasa por referencia.En claro, haces algunos cambios pero no lo envías a Drupal.
Además, puede hacerlo así (no lo he probado, pero en teoría debería funcionar).
Era flojo agregar un cheque
fieldset
y agregar marcador de posición a los niños. Pero supongo que puedes cambiarlo muy fácilmente.fuente
Una ligera mejora en la solución de archivo de plantilla de @ Josua: este código también agregará texto de marcador de posición a los campos de correo electrónico de formularios web.
fuente
usando hook_form_alter intente esto
fuente
Para cualquiera que use una versión anterior u obsoleta del módulo Webform de Drupal , vale la pena señalar que se agregó soporte de marcador de posición en
7.x-4.x branch
(junio de 2013).Por lo tanto, la funcionalidad de marcador de posición HTML5 ahora es una opción nativa incorporada junto con clases CSS personalizadas para componentes y varias otras características solicitadas desde hace mucho tiempo.
Aquí hay una captura de pantalla de cómo aparece la nueva funcionalidad:
fuente
En la mayoría de los casos, supongo, uno solo querría agregar atributos de marcador de posición en algunos formularios.
Si desea agregar marcador de posición a todos los formularios web, puede hacerlo así:
fuente
Simplemente use el módulo para ello: Sugerencias de formulario web
Es exactamente lo que necesitas. Es fácil de administrar y no hay necesidad de código personalizado. Este módulo también proporciona soporte para navegadores heredados que no admiten el atributo de marcador de posición.
fuente