Pesquisa no site
Itens ativos
Posts mais lidos hoje
Login do usuário
Assine o RSS do Drupal-BR
mudar id botão submit webform
Pessoal, eu preciso mudar o ID ou o name do botão de "submit" do webform porque ele está bom o mesmo ID e name do botão de "Assinar" informativos do drupal e por isso não possousar um javascript pelo ID. Isso é um bug do drupal.
É uma coisa simples mas não sei como fazer.
Alguém poderia ajudar-me ?
Abraço a todos !
Enviado por joaogil em 04/07/2009 - 16:13
- Se logue ou se registre para poder enviar comentários
- 928 leituras


Alguém sabe ?
joaogil,
Não é um bug do Drupal... na verdade faltou você espiar um pouco o código, e perceber que: Todos os botões (ou quase todos) de submit do Drupal tem id="edit-submit" e class="form-submit". Porém isso não impede que você o capture com CSS ou JS, porque eles estão dentro de uma tag form ou div, que tem seu ID personalizado. Então, basta buscar o botão pelo seu endereço completo :)
Entendeu? O Drupal está bastante maduro para errar em coisas como essas... ;P
Qualquer coisa poste ae!
Abraço!
Thiago Régis
Portfolio
Efeitos e Scripts
jQuery Brasil - Em breve
Eu sei que dá pra capturar com CSS atravéz do ID do div ou do form, mas com javascript usando getElementById() não dá porque existem 2 botões na mesma página com o mesmo ID e mesmo nome, e não de deve existir 2 elementos em uma mesma página com o mesmo ID (regras de W3C), então isso é um bug do webform.
Nem pelo nome do form acompanhado do nome do botão não dá porque o formulário do webform só possui ID e não name.
Mas eu usei uma função do php pra mudar o ID do botão submit do webform antes de imprimi-lo na página.
Olá caro João!
Para você mudar o ID do formulário é bem fácil!
Basta você fazer o seguinte:
Abra o arquivo template.php do seu tema:
E insira o seguinte código a partir da última linha:
$form['submit']['#id'] = 'botaoEnviar'; // coloque após o sinal de igual o nome que você precisa
return theme('webform_form', $form);
}
OBSERVAÇÃO: NID é o número do ID de seu formulário, no caso o id do node, se você não estiver acessando a página pelo endereço do seu site /node/7 por exemplo, você pode verificar o número do ID do node no proprio id do formulário, algo do tipo id="webform-client-form-7".
Se por exemplo, seu ID for "7" a função acima vai ficar assim:
$form['submit']['#id'] = 'botaoEnviar';
return theme('webform_form', $form);
}
A saber, eu testei isto com o Drupal 6.
Flws!
É na colaboração que crescemos juntos!
Boa, Giba!
Abraço!
Thiago Régis
Portfolio
Efeitos e Scripts
jQuery Brasil - Em breve
Valeu Giba, mas não deu certo pra mim, ele não mudou o ID do botão submit do webform. O que pode ser ?
Eu criei outra forma, no arquivo webform-form.tpl.php adicionei o seguinte código:
$formulario_webform = str_replace('id="edit-submit"', 'id="edit-submit-webform"', drupal_render($form));
print $formulario_webform;
Não é a forma mais certa mas está mudando o ID.
joaogil,
Depois de escrever a função que o gilbertoalbito passou, você precisa limpar o cache do Drupal. Só assim ocorrerá a modificação.
Abraço!
Thiago Régis
Portfolio
Efeitos e Scripts
jQuery Brasil - Em breve
Bem lembrado Thiago!
Eu não me liguei nisto, porque eu uso a reconstrução automatica de cache do tema quando estou em ambiente de produção, e testei justamente enquanto trabalhava em cima de um tema. :p
Ai vai a dica:
Quando estiverem trabalhando em ambiente de desenvolvimento de um tema, coloquem na última linha do arquivo
"template.php" a chamada à função:
drupal_rebuild_theme_registry();Desta forma, o cache dos registros para o tema serão limpos automaticamente, sem precisar limpar "todo" o cache do Drupal o que além de inconveniente em alguns casos é cansativo.
É na colaboração que crescemos juntos!
Valeu pelas dicas pessoal, vou fazer os testes aqui. Uma vantagem nesta forma que eu criei é que todos os webforms futuramente criados terão seus IDs alterados e nunca terão o mesmo ID de outros botões.
Abraço à todos !