Botão De Formulário Abrindo Shadowbox - Javascript / DOM / AJAX / ECMAScript - Fórum WMO
Botão De Formulário Abrindo Shadowbox
Started By Billie Joe, 05/08/2008, 12:44
#1 Billie Joe
Posted 05/08/2008, 12:44
Estou utilizando o Shadowbox (http://www.mjijackson.com/shadowbox/) para algumas funções dentro de um projeto e está ficando muito bom. Mas surgiu um pequeno detalhe que não estou sabendo como resolvê-lo.
Tenho um formulário de pesquisa dentro do site. Quero que quando o usuário clique no botão "enviar" o destino seja uma janela do tipo shadowbox. Com um botão comum eu faria o seguinte (por exemplo, na galeria de fotos):
<a rel="shadowbox;width=300;height=250" class="nova_galeria" title="Galeria de Fotos" href="galeria.php">Abrir a galeria de fotos</a>
Porém como eu posso colocar este mesmo link, com os atributos rel e class, dentro do botão de enviar (ou do formulário)?
Uma ajudinha será MUITO bem vinda!
Posted 05/08/2008, 14:05
E por que não... Colocar o submit do form dentro de um link ao invés de tentar o inverso?
document.forms['nome_form'].submit();
<form name="nome_form" action="http://www.google.com/">
Teste: <input type="text" value="testeee" size="20">
<a href="#" rel="teu_rel" class="tua_classe" onclick="envia();return false;">Enviar</a>
Sendo assim, não rola stress com o não suporte do input para com o rel.
Posted 06/08/2008, 09:11
A idéia é boa mas ainda não tá funcionando... Quando eu clico no submit ele abre o shadowbox do jeitinho que é pra ser mesmo, porém na janela principal ele começa a carregar a página action do formulário. Tentei até tirar o action do <form> mas não deu certo ainda.
Só como observação - enquanto ele abre o shadowbox, se eu dou um ESC ele pára de carregar a página de origem e ai funciona perfeito. Se existir uma maneira de mandar o target _parent parar acho q funciona. Tem como?!
Vmaos lá!
Resolvi parcialmente o problema - coloquei um window.stop(); logo após o submit dentro da função "envia". Desse jeito funcionou direitinho a abertura do shadowbox, porém ele não levou a variável para a página q roda dentro do shadowbox.
Como não entendo de JS fico meio preso mas acho q o certo seria fazer uma função que abre o shadowbox como resultado do submit do form mesmo, e não colocar o botão de enviar como se fosse um botão comum. Teria como fazer isso?
Edição feita por: Billie Joe, 05/08/2008, 18:49.
Posted 06/08/2008, 15:19
Olha, nomalmente eu colocaria aquele return false dentro da função, após invocado o método de submit. Coisas de AJAX não obstrusivo...
Não é teu caso não?
#5 Billie Joe
Posted 07/08/2008, 09:31
Também não funcionou não... Acontece a mesma coisa - ele até abre a shadowbox porém depois a página "_parent" carrega a mesma q irá pra shadowbox...
Posted 07/08/2008, 11:35
É complicado fazer, já que o script não foi feito para isso. Mas como o script abre um iframe para página externas, tente abrir o shadowbox, como falado acima, e colocar um target no formulário apontando para o iframe que é aberto. Nesse caso você tem que ver qual é o nome do iframe.
#7 Billie Joe
Posted 07/08/2008, 12:34
Olha, se vcs q manjam de Javascript estão dizendoq é complicado, eu já resolvi - não vou fazer hehehe. Vou abrir numa janela comum mesmo, até sem popup. O cliente gostou pq vai ter inclusive mais espaço para o conteúdo que ele pretende exibir.