+ Responder ao Tópico



  1. #1

    Padrão Validar form com várias funções Javascript

    Bom dia a todos

    Estou com um problema aqui para validar dois campos de um formulário, como podem ver, não sou um programador muito experiente, pois não conseguir validar DOIS campos é dose... heheheeh :-D

    Meu formulário tem dois campos que o usuário vai informar no primeiro a data inicial e no segundo a data final que será necessária para gerar um relatório.

    Preciso somente validar as datas no formato DD/MM/AAAA, já consegui fazer isso, com 4 funções diferentes:

    validateFields() : verifica se os campos estão vazios
    verifyDateIni() : verifica o primeiro campo, se dia/mes/ano são válidos
    verifyDateEnd() : verifica o segundo campo, se dia/mes/ano são válidos
    compareDate() : verifica se o segundo campo é menor que o primeiro

    Verifiquei o funcionamento de cada uma, mas o que não to conseguindo fazer é passar por todas funções, para só então submeter o formulário.

    A verificação até está sendo feita, mas me retorna TODAS as mensagens de erros... :x

    Alguém tem alguma dica, ou algum outro script que faça isso de um jeito mais simples ?

    Valeu pela atenção

  2. #2
    DemonCyber
    Visitante

    Padrão Re: Validar form com várias funções Javascript

    Será que você poderia explicar melhor o seu problema eu não entendi direito, mas acho que posso ajudar, agora estou um pouco sem tempo mas quando voltar para casa tratarei de ajuda-lo =].

    * O que você quer é?
    - Analizar os dois campos antes de submetar a página
    - Ao analizar os dois campos chamar as 4 funções
    - Somente submeter caso as 4 funções estejam corretas

    Bom se puder disponha de mais informações que as pessoas lhe ajudaram com maior facilidade =] =]

    Ei ei tenho uma indicação de documento para você, quem sabe lhe ajude para mim ajudou muito, e por favor não se sinta ofendido, sempre comento isso porque tem pessoas que se sentem ofendidas por qualquer coisa, o que estou querendo fazer é somente lhe ajudar.

    Se seu inglês estiver bom
    http://www.catb.org/~esr/faqs/smart-questions.html

    O texto traduzido
    http://www.celiojunior.com.br/comofazerperguntas.htm

    Vale a pena conferir o texto =]

  3. #3

    Padrão Re: Validar form com várias funções Javascript

    Blz

    Não fico ofendido não...

    Mas só acho que minha pergunta está BEM clara.

    Tanto é que você entendeu exatamente minha necessidade :-D

    O que eu preciso de ajuda é em relação a como fazer isso funcionar da maneira que comecei ou de qualquer outra maneira, pois pra mim o importante é que funcione, ou seja, que valide os dois campos com os formatos DD/MM/YYYY com datas válidas.

    Estou vasculhando na internet/Google pra ver se consigo, mas só vim ao fórum porque já fiz isso, mas vou continuar tentando.

    Valeu !!!

  4. #4
    DemonCyber
    Visitante

    Padrão Re: Validar form com várias funções Javascript

    EI EI cara eu fiz um exemplo para vc heheh =] mas nao se acustume pq geralmente nao faco isso hauhauuh mas hoje estou bonzinho e empolgado hauhauh =]
    Espero q solucione seu problema.

    <html>
    <head>
    <title>Multiplos campos sendo checados</title>
    <script language="javascript">
    //exemplo jah que nao sei o codigo da funcao =]
    function validateFields(){
    if(inicial.value == "nada =]")
    return false
    else
    return true
    }

    function testar(){
    alert("Feito em um Slackware 10.2 quase 11 =], e no emacs modo console =] =] ");
    inicial = document.teste.inicial;
    final = document.teste.final;
    submeter = true;
    if(validateFields(inicial) == false)
    {
    submeter = false;
    alert("tosco nao validou o campo inicial com o valor correto x y pk delta ")
    }
    //... faca com as outras funcoes
    //...
    if(submeter == true){
    alert("Parabens vc conseguiu vc venceu ehhh \o/ sim sim eu sou meio bobo huahauhu agora a pagina vai ser submetida");
    document.teste.submit();
    }
    else
    alert("Para continuar por favor luser complete os campos direito. Obrigado pela atencao =] ");
    }
    </script>
    </head>
    <body>
    <FORM NAME="teste" METHOD="POST">
    <input type="text" name="inicial" value="nada =]">
    <input type="text" name="final" >
    <input type="button" name="teste" onclick="testar()">
    </FORM>
    </body>
    </html>

  5. #5

    Padrão Re: Validar form com várias funções Javascript

    hehehehe Valeu brow !

    Mas eu já tinha conseguido o que eu queria, com um código "um pouquinho" maior :-P
    Pra não dizer... MONSTRUOSO :-D

    Tem gente que vai ver e pensar: "Nossa pra que tudo isso ?!!!?" heheheeh
    Mas como eu disse antes, o importante é que tá funcionando já.

    Obrigado !

    Código :
    function validateFields(){
     
    diaI = ponto.dtIni.value.substr(0,2);
    mesI = ponto.dtIni.value.substr(3,2);
    anoI = ponto.dtIni.value.substr(6,4);
    diaE = ponto.dtEnd.value.substr(0,2);
    mesE = ponto.dtEnd.value.substr(3,2);
    anoE = ponto.dtEnd.value.substr(6,4);
     
    if ((diaI == "") | (mesI == "") | (anoI == "")){
    		alert("Formato da data INICIAL inválido. Formato correto: dd/mm/aaaa.");
    		ponto.dtIni.focus();
    } else {
    	if ((diaE == "") | (mesE == "") | (anoE == "")){
    		alert("Formato da data FINAL inválido. Formato correto: dd/mm/aaaa.");
    		ponto.dtEnd.focus();
    	} else {
    		if (ponto.dtIni.value.length != 10){
    			alert("Formato da data INICIAL inválido. Formato correto: dd/mm/aaaa.");
    			ponto.dtIni.focus();
    		} else {
    			if (ponto.dtEnd.value.length != 10){
    				alert("Formato da data FINAL inválido. Formato correto: dd/mm/aaaa.");
    				ponto.dtEnd.focus();
    			} else {
    				if ("/" != ponto.dtIni.value.substr(2,1) || "/" != ponto.dtIni.value.substr(5,1)){
    					alert("Formato da data INICIAL inválido. Formato correto: dd/mm/aaaa.");
    					ponto.dtIni.focus();
    				} else {
    					if ("/" != ponto.dtEnd.value.substr(2,1) || "/" != ponto.dtEnd.value.substr(5,1)){
    					alert("Formato da data FINAL inválido. Formato correto: dd/mm/aaaa.");
    					ponto.dtEnd.focus();
    					} else {
     
    //Inicio Validação campo DATA INICIAL
    if (isNaN(diaI) || diaI > 31 || diaI < 1){
    	alert("Dia inválido.");
    	ponto.dtIni.focus();
    } else { //Verifica se o mês tem 31 dias
    	if (isNaN(mesI) || mesI > 12 || mesI < 1){
    		alert("Formato do mês inválido.");
    		ponto.dtIni.focus();
    	} else {
    		if (mesI == 4 || mesI == 6 || mesI == 9 || mesI == 11){
    			if (diaI == "31"){
    				alert("O mês informado não possui 31 dias.");
    				ponto.dtIni.focus();
    			} else {
    				//alert("FUNFOU");
    			}
    		} else {
    			//alert("FUNFOU");
    		}
     
    //Inicio Validação campo DATA FINAL
    if (isNaN(diaE) || diaE > 31 || diaE < 1){
    	alert("Dia inválido.");
    	ponto.dtEnd.focus();
    } else { //Verifica se o mês tem 31 dias
    	if (isNaN(mesE) || mesE > 12 || mesE < 1){
    		alert("Formato do mês inválido.");
    		ponto.dtEnd.focus();
    	} else {
    		if (mesE == 4 || mesE == 6 || mesE == 9 || mesE == 11){
    			if (diaE == "31"){
    				alert("O mês informado não possui 31 dias.");
    				ponto.dtEnd.focus();
    			} else {
    				//alert("FUNFOU");
    				ponto.action = "RelatorioExcel0";
    				ponto.submit();
    			}
    		} else {
     
    		}
    	}
    }
    }
    }}}}}}}}

    Abraço