Ir para conteúdo
Fórum Script Brasil
  • 0

Validando Forms


rlaurenti

Pergunta

Prezados:

Preciso fazer a seguinte tarefa:

Eu utilizo o formmail do SB, mas moldado à minha maneira dentro da minha página.

Apontei a página resposta para uma página que fecha automaticamente quanto aberta.

Para evitar que sejam enviadas mensagens em branco utilizei o script postado em

http://scriptbrasil.com.br/forum/index.php...indpost&p=53481

e para poder avisar o user que vai abrir uma janela que vai fechar logo após eu uso o seguinte script:

<script>
function Show(URL)
{
window.showModalDialog(URL,"POPUP","dialogTop=70px;dialogLeft=50px;dialogHeight=150px;dialogWidth=300px;scroll=no;resizable=no;help=no;status=no")
}
</script>
Até aí tudo bem, só que tenho um problema. Eu coloquei o window.showModalDialog no onClick do Botão Enviar, só que mesmo quando o form não está preenchido surge a janela de aviso. segue abaixo todo o código em questão, gostaria de poder fazer essa ação, avisar o user da janela que abrirá e impedir o user de enviar forms sem conteúdo. Não precisa ser exatamente desta maneira, se tiver outro jeito, sem problemas, eu só peço pra mandarem o código, já que não sei quase nada de javascript.
<script>
function enviar(){
if (document.enviar_formulario.campo2.value==''){
alert('Por favor, preencha o seu Nome');
document.enviar_formulario.campo2.focus();
return(false);
}
if (document.enviar_formulario.campo1.value==''){
alert('Por favor, preencha o seu E-mail');
document.enviar_formulario.campo1.focus();
return(false);
}                 
var str=document.enviar_formulario.campo1.value
var filter=/^.+@...+..+..{2,3}$/
if (filter.test(str))
testresults=true
else
{
alert("Por favor, preenche o seu E-mail correto")
testresults=false
enviar_formulario.campo1.focus();
return (testresults)
}
if (document.enviar_formulario.campo4.value==''){
alert('Por favor, escreva seu comentário.');
document.enviar_formulario.campo4.focus();
return(false);
}}
</script>
<script>
function Show(URL)
{
window.showModalDialog(URL,"POPUP","dialogTop=70px;dialogLeft=50px;dialogHeight=150px;dialogWidth=300px;scroll=no;resizable=no;help=no;status=no")
}
</script>
<base target="_blank">
<body text="#CCCCCC" bgcolor="#000000">
<form name="enviar_formulario" method="post" action="https://www.scriptbrasil.com.br/mail/mail.php" onSubmit="return enviar();">
  	<input type="hidden" name="resposta" value="www.zero900.hpg.com.br/resposta.htm">
  	<input type="hidden" name="email" value="zero900online@bol.com.br">
  	<input type="hidden" name="titulo" value="ZERO 900 Guest Book">
  	Nome<br>
  	<input type="text" name="campo2" value size="41" style="font-family: v; font-size: 10 px; color: #CCCCCC; border: 1px solid #CCCCCC; background-color: #000000"><br>
            email/URL<br>
            <input type="text" name="campo1" value size="41" style="font-family: v; font-size: 10 px; color: #CCCCCC; border: 1px solid #CCCCCC; background-color: #000000"><br>
            <br>
            Comentários:<br>
            <textarea rows="5" cols="45" name="campo4" style="font-family: Verdana; font-size: 10 px; color: #CCCCCC; border: 1px solid #CCCCCC; background-color: #000000"></textarea>
            <br>
            <br>
             <input type="submit" value="Enviar" onSubmit="Javascript:Show('aviso.htm')" style="font-family: Verdana; font-size: 10 px; color: #000000; border: 1px solid #000000; background-color: #CCCCCC"> 
             &nbsp;&nbsp;
             <input type="reset" value="Limpar formulário" style="font-family: Verdana; font-size: 10 px; color: #000000; border: 1px solid #000000; background-color: #CCCCCC">


&nbsp;</form>
          </td>
          
        </tr>
      </table>
      </center>
    </div>
    </td>
  </tr>
</table>

</body>

Muito obrigado....

ph34r.gif

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Eu não sabia que o metodo window.sh... não funcionava no Mozilla, então deixa eu pedir outra coisa, nessa série de if's do script não tem como colocar um que faça a verificação de todos os campos e retorne uma mensagem dee alerta dizando que a mensagem foi enviada com sucesso, ,blá blá blá. Sei que o fato dos campos terem sido preenchidos corretamente não significa que a msg foi realmente enviada, isso depende do servidor SB, mas pelo menos eu consigo avisar que irá abrir uma janelinha que vai fechar sozinha. E creio eu que o alert funfe em todos (ou quase todos) navegadores.

Eu fiquei horas tentando, mas é um script muito complexo e não consegui fazer funcionar de jeito nenhum....

se puder escrever essa string pra mim fico muito agradecido.

ph34r.gif

Link para o comentário
Compartilhar em outros sites

  • 0

O alert funciona em todos os browsers(Pelo menos os q ainda são usados). Bom nunca trabalhei com o formmail, mas acredito q ele deve te retornar algo se ele conseguir enviar com sucesso ou se der algum erro. Ela volta pra mesma página depois de enviado os dados? Se sim, é só tu testar o q ele te retorna e conforme o retorno tu dá mensagem de enviado ou não...

Hoje não tenho como fazer esse script pra ti. Dá uma procurada em formmail e os retornos, se não conseguir dou um jeito hj de noite.

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

Fazer com que a resposta abra a mesma página funcionou, mas quando eu gostaria que quando ela abrisse mandasse um alert. Só não sei se é possível, porque a página que abre seria a index do GuestBook, se eu colocar isso no OnLoad mesmo quando o fulano não mandar msg nenhuma abriria o alert. De que maneira posso fazer com que o alert apareça somente após a msg enviada.

Valeu pela atenção... e desculpe pelo trabalho...

Rodrigo ph34r.gif

Link para o comentário
Compartilhar em outros sites

  • 0

faz o seguinte, passa um parâmetro pela string da url.

ex:

lá onde você especifica a resposta...

<input type="hidden" name="resposta" value="www.zero900.hpg.com.br/resposta.htm?flag=ok">

E nessa página tu chama uma função que pega os parâmetros da url(se tiver trabalhando com php é só colocar um $flag q funciona) e testar vê se tah vindo ok, se tiver dá alert se não não.

Qualquer coisa posta ae...

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...