• Cadastro
  • Fóruns
  • Manual
  • Tradução
  • Tutoriais
  • OpenAtrium
Início

Login do usuário

  • Criar uma conta
  • Recuperar senha

Download

Últimas versões

Drupal 6.19 Drupal 5.23

Contribuições

Módulos Temas Tradução


Lista de Discussão

Drupal-BR

Pesquisa no site

Google

Treinamento Drupal 15 de maio e 24 de junho de 2010 em São Paulo e Rio de Janeiro

Itens ativos

  • Busca em site
  • ERRO NO SQL (EU ACHO)
  • Pagina Não encontrada
  • redirecionar para a listagem de conteúdo depois de adicionar algum conteúdo
  • Vaga: Líder Técnico PHP (Campinas/SP)
  • Ibmec Jr. Consultoria Empresarial
  • Resposta de usuário anônimo no Fórum
  • Treinamento Drupal em Curitiba
  • Upload
  • Views para lista de usuários sem repetição.
Veja mais

Posts mais lidos hoje

  • Manual
  • Tutorial - Criando um site com caixas de notícias
  • Vaga: Líder Técnico PHP (Campinas/SP)
  • Sobre o Drupal
  • Treinamento Drupal em Curitiba
  • Instalação
  • Resposta de usuário anônimo no Fórum
  • Ibmec Jr. Consultoria Empresarial
  • Instalação ilustrada em localhost
  • Mamão e Drupal com açucar, desmistificando o primeiro contato com o Drupal

Assine o RSS do Drupal-BR

RSS dos itens mais ativos

RSS do conteúdo

RSS dos comentários

Início » Fórum » Suporte » Módulos

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 !

‹ erro no módulo smtp Webform - chamar funções template.php ›
Enviado por joaogil em 04/07/2009 - 16:13
  • Módulos
  • Qualquer
  • Se logue ou se registre para poder enviar comentários
  • 1517 leituras
Em 06/07/2009 - 23:01 joaogil disse:

Alguém sabe ?

  • Se logue ou se registre para poder enviar comentários
Em 07/07/2009 - 01:21 tregismoreira disse:

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
@tregismoreira
Consultoria e Treinamento em Drupal
Drupal Casesbeta

  • Se logue ou se registre para poder enviar comentários
Em 07/07/2009 - 14:01 joaogil disse:

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.

  • Se logue ou se registre para poder enviar comentários
Em 07/07/2009 - 18:52 gilbertoalbino disse:

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:

function phptemplate_webform_form_NID ($form) {
   $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:

function phptemplate_webform_form_7($form) {
   $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!

  • Se logue ou se registre para poder enviar comentários
Em 08/07/2009 - 01:06 tregismoreira disse:

Boa, Giba!

Abraço!
Thiago Régis
@tregismoreira
Consultoria e Treinamento em Drupal
Drupal Casesbeta

  • Se logue ou se registre para poder enviar comentários
Em 10/07/2009 - 01:01 joaogil disse:

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.

  • Se logue ou se registre para poder enviar comentários
Em 10/07/2009 - 12:28 tregismoreira disse:

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
@tregismoreira
Consultoria e Treinamento em Drupal
Drupal Casesbeta

  • Se logue ou se registre para poder enviar comentários
Em 10/07/2009 - 14:31 gilbertoalbino disse:

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!

  • Se logue ou se registre para poder enviar comentários
Em 11/07/2009 - 14:31 joaogil disse:

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 !

  • Se logue ou se registre para poder enviar comentários
Em 27/05/2010 - 19:09 joaogil disse:

Olá Gilbertoalbito, eu poderia usar esta sua função para alterar o ID do botão submit de todos os webforms, e não apenas de um, como no seu exemplo NID 7. O que devo alterar ?

Abraço !

  • Se logue ou se registre para poder enviar comentários
Designimage

Este site é feito, orgulhosamente, com Drupal.