Estou tentando adicionar o atributo placeholder a todos os campos de texto do meu site, mas não estou tendo sorte.
Eu criei um módulo que substitui 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"]);
}
}
}
Devo dizer que também estou usando o módulo de formulário da web.
Altere ligeiramente para ....
$value
no escopo foreach, o tipo de valor não é uma referência.EDITAR:
Acabei de experimentar o código a seguir e consegui iterar recursivamente todo o formulário para os campos de texto editarem seus atributos.
fonte
Você provavelmente poderia fazer isso com
hook_form_alter
ouhook_form_FORM_ID_alter
adicionando o atributo "placeholder"por exemplo, não testado, mas algo como:
Localize o elemento de formulário oculto no HTML do formulário da web chamado
form_id
para obter o ID do formulário correto para oform_alter
nome da função.fonte
Uma abordagem melhor ao código de Josua Pedersen:
fonte
No seu código, você altera a variável
$value
que nunca se associa novamente à variável$form
, qual é passada por referência.De maneira clara, você faz algumas alterações, mas não as envia de volta ao Drupal.
Além disso, você pode fazer assim (não testei, mas, em teoria, deveria funcionar).
Eu estava com preguiça de adicionar um cheque
fieldset
e adicionar espaço reservado às crianças. Mas acho que você pode mudar muito facilmente.fonte
Uma ligeira melhoria na solução de arquivo de modelo do @ Josua: esse código também adicionará texto de espaço reservado aos campos de email do formulário da web.
fonte
usando hook_form_alter tente isso
fonte
Para quem usa uma versão mais antiga ou desatualizada do módulo Webform do Drupal , é importante notar que o suporte ao espaço reservado foi adicionado no
7.x-4.x branch
(junho de 2013).Portanto, a funcionalidade de espaço reservado HTML5 agora é uma opção nativa interna, juntamente com classes CSS personalizadas para componentes e vários outros recursos solicitados há muito tempo.
Aqui está uma captura de tela de como a nova funcionalidade aparece:
fonte
Na maioria dos casos, eu acho, só se deseja adicionar atributos de espaço reservado em alguns formulários.
Se você deseja adicionar espaço reservado a todos os formulários da web, faça o seguinte:
fonte
Basta usar o módulo: Dicas do Webform
É exatamente o que você precisa. É fácil de gerenciar e não é necessário código personalizado. Este módulo também fornece suporte para navegadores herdados que não suportam o atributo de espaço reservado.
fonte