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

(Resolvido) SUBMETER FORM COM VALIDAÇÃO JAVASCRIPT


diego siani

Pergunta

BOM DIA COMUNIDADE SCRIPT BRASIL, SOU UM DESENVOLVEDOR WEB RECÉM-FORMADO E ESSE É MEU SEGUNDO POST AQUI NO FÓRUM, VEJAM SE PODEM ME AUXILIAR. TENHO UM FORMULÁRIO EM UMA PÁGINA WEB COM VALIDAÇÃO EM JAVASCRIPT ACIONADO ATRAVÉS DO EVENTO ONSUBMIT DO FORM. ATÁ AQUI TD beleza. PORÉM, APÓS CHAMAR A VALIDAÇÃO QUE VERIFICA ALGUNS CAMPOS DO FORM ELE SUBMETE O FORMULARIO MESMO QUE A VALIDAÇÃO NÃO SIGA ATÉ SEU FINAL ONDE SE ENCONTRAM AS PROPRIEDADES ACTION E METHOD DO MEU FORM. PARA EXPLICAR MELHOR SEGUE CÓDIGO:

<script>
function validanewcli(variav)
    {
        if(form.razao.value == ""){alert("Informe a Razão Social...");form.razao.focus();return false;}
        if(form.cnpj.value == ""){alert("Informe o cnpj...");form.cnpj.focus();return false;}
        if(form.fantasia.value == ""){alert("Informe nome fantasia...");form.fantasia.focus();return false;}
        if(form.contato.value == ""){alert("Informe um contato...");form.contato.focus();return false;}
        form.action="grava_cliente.asp?opcao="+variav;
        form.ENCTYPE = "";
        form.method="post";
    }
</script>

<!--formulário de cadastro-->
<form name="form" onsubmit="validanewcli('1');">
<input type="submit" value="Cadastrar >>" />
</form>

OU SEJA AO SUBMETER, ELE FAZ UM RELOAD NA MESMA PÁGINA E APAGA TODOS OS DADOS INSERIDOS NOS INPUT'S CASO ELE NÃO PASSE PELA VALIDAÇÃO. É COMO ELE SUBMETESSE O FORMULÁRIO PARA A PÁGINA ATUAL.

ALGUÉM PODE ME DAR UMA LUZ??

[]'S

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

isso acontece porque você n colocou nenhuma condição para a parte:

form.action="grava_cliente.asp?opcao="+variav;
form.ENCTYPE = "";
form.method="post";
apenas para as validações, entende ? sempre que você chamar a função ele vai submeter o form, porque n esta dentro de nenhuma condição (if, else, elseif) você pode fazer assim:
function validanewcli(variav)
{
    // criei uma variavel auxiliar que se encarrega de receber o status da
    // validação
    var passou = true;
    
    if(form.razao.value == "")
    {
        alert("Informe a Razão Social...");
        form.razao.focus();
        passou = false; // se der erro, a var passou recebe false
        return false;
    }
    
    if(form.cnpj.value == "")
    {
        alert("Informe o cnpj...");
        form.cnpj.focus();
        passou = false;
        return false;
    }
    
    if(form.fantasia.value == "")
    {
        alert("Informe nome fantasia...");
        form.fantasia.focus();
        passou = false;
        return false;
    }
    
    if(form.contato.value == "")
    {
        alert("Informe um contato...");
        form.contato.focus();
        passou = false;
        return false;
    }
    
    // se a var passou n estiver recebendo false
    // então realiza o submit do form
    if (passou != false)
    {
        form.action="grava_cliente.asp?opcao="+variav;
        form.ENCTYPE = "";
        form.method="post";
    }    
    return true;
}
</script>
organizei o código dessa forma pra ficar mais fácil de entender o que esta acontecendo, mas note que eu adicionei uma variavel auxiliar que recebe um valor booleano, adicionei também uma outra condicionail (o ultimo if) que faz a verificação se tudo está ok e dai faz o submit do form e por ultimo veja que eu coloquei o return true no final de tudo, isso vai fazer com que o form n seja resetado toda vez que ele párar pra dar um alert... devido eu ter colocado o return true no final, você deve fazer assim na parte que chama a função:
<form name="form" onsubmit="return validanewcli('1');">

veja que eu coloquei o return antes da função...

testa ae e veja se tudo funciona direitinho, senão, posta ae de novo que a gente ajuda

Link para o comentário
Compartilhar em outros sites

  • 0

Duas coisas:

1. Tenta não postar em maiúsculo (atrapalha a visualização)

2.0 Posta seus códigos dentro da tag "code"

Não entendi muito bem seu objetivo, mas acho que é isso aqui:

<script type="text/javascript">
function validanewcli()
var valor = true
{
if(form.razao.value == ""){alert("Informe a Razão Social...");form.razao.focus();valor=false}
if(form.cnpj.value == ""){alert("Informe o cnpj...");form.cnpj.focus();valor=false}
if(form.fantasia.value == ""){alert("Informe nome fantasia...");form.fantasia.focus();valor=false}
if(form.contato.value == ""){alert("Informe um contato...");form.contato.focus();valor=false}
form.action="grava_cliente.asp"
form.method="post";
if (valor==true) {
form.submit()
}
}
</script>

<!--formulário de cadastro-->
<form name="form" onsubmit="validanewcli()">
<input type="hidden" name="variavel_hidden" value="1"">
<input type="button" value="Cadastrar >>" />
</form>

Obs.:

Para tornar mais prático, coloquei um campo "Hidden" no formulário com o valor que você quer passar

Sendo assim, ao invés de pegar o valor na outra página via "Request.QueryString", você vai ter que utilizar o "Request.Form"

Se funcionar, posta aí !

Pode ajudar outras pessoas com o mesmo problema

Link para o comentário
Compartilhar em outros sites

  • 0

valeu Juan.. era exatamente essa luz que eu precisava.. testei e funcionou perfect.. obrigado pela ajuda..

[]

isso acontece porque você n colocou nenhuma condição para a parte:

form.action="grava_cliente.asp?opcao="+variav;
form.ENCTYPE = "";
form.method="post";
apenas para as validações, entende ? sempre que você chamar a função ele vai submeter o form, porque n esta dentro de nenhuma condição (if, else, elseif) você pode fazer assim:
function validanewcli(variav)
{
    // criei uma variavel auxiliar que se encarrega de receber o status da
    // validação
    var passou = true;
    
    if(form.razao.value == "")
    {
        alert("Informe a Razão Social...");
        form.razao.focus();
        passou = false; // se der erro, a var passou recebe false
        return false;
    }
    
    if(form.cnpj.value == "")
    {
        alert("Informe o cnpj...");
        form.cnpj.focus();
        passou = false;
        return false;
    }
    
    if(form.fantasia.value == "")
    {
        alert("Informe nome fantasia...");
        form.fantasia.focus();
        passou = false;
        return false;
    }
    
    if(form.contato.value == "")
    {
        alert("Informe um contato...");
        form.contato.focus();
        passou = false;
        return false;
    }
    
    // se a var passou n estiver recebendo false
    // então realiza o submit do form
    if (passou != false)
    {
        form.action="grava_cliente.asp?opcao="+variav;
        form.ENCTYPE = "";
        form.method="post";
    }    
    return true;
}
</script>
organizei o código dessa forma pra ficar mais fácil de entender o que esta acontecendo, mas note que eu adicionei uma variavel auxiliar que recebe um valor booleano, adicionei também uma outra condicionail (o ultimo if) que faz a verificação se tudo está ok e dai faz o submit do form e por ultimo veja que eu coloquei o return true no final de tudo, isso vai fazer com que o form n seja resetado toda vez que ele párar pra dar um alert... devido eu ter colocado o return true no final, você deve fazer assim na parte que chama a função:
<form name="form" onsubmit="return validanewcli('1');">

veja que eu coloquei o return antes da função...

testa ae e veja se tudo funciona direitinho, senão, posta ae de novo que a gente ajuda

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...