MauF Postado Setembro 29, 2004 Denunciar Share Postado Setembro 29, 2004 oi galera tem como fazer um validador de datas em java script...Se tiver alguém conhece algum bom.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Setembro 29, 2004 Denunciar Share Postado Setembro 29, 2004 function FormataDATA(nome){ erroValue = ""; DATA = getValue(nome); DATA = Limp(DATA); if(DATA.length == 8){ if(parseInt(DATA.substring(0,2)) > 31){ erroValue = ('Você digitou o dia incorretamente, a data foi apagada. Digite novamente'); DATA = ""; } else { dia = DATA.substring(0,2); if(parseInt(DATA.substring(2,4)) > 12){ erroValue = ('Você digitou o mês incorretamente, a data foi apagada. Digite novamente'); DATA = ""; } else { mes = DATA.substring(2,4); ano = DATA.substring(4,8); if(ano > 2050 || ano < 1900){ erroValue = ("Você digitou o ano incorretamente, a data foi apagada. Digite novamente"); DATA = ""; } else { tmpMes = mes -1; tmp = new Date(ano, tmpMes, dia); m = tmp.getMonth(); if(tmpMes != m){ erroValue = ('Data Inválida. A Data foi apagada, digite novamente'); DATA = "";} else DATA = dia + ('/') + mes + ('/') + ano; } } } } else { if(DATA.length > 0){ erroValue = ('Verifique a data digitada, pois está incorreta. A data deve ser digitada com seus 8 dígitos (dd mm aaaa). Ex.: 01/01/2004 (As barras não são necessárias.)'); DATA = ""; } } setValue(nome, DATA); } function getValue(nome){ var obj = eval("document.forms[0]."+nome+".value"); return obj; } function setValue(nome, valor){ obj = eval("document.forms[0]."+nome); obj.value = valor; } é só você passar o nome do campo a ser verificado a data...faz tempo q fiz essa função nem me lembro se tah funcinando, dá uma olhada, qualquer coisa me fala se não era bem isso q você queria....abraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MauF Postado Setembro 29, 2004 Autor Denunciar Share Postado Setembro 29, 2004 pelo que eu to vendo era isso mesmo mas não estou consegindo usar..como faz para esse escript checar o código........ai que estou me perdendo... se poder me mostrar eu agradeço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Setembro 30, 2004 Denunciar Share Postado Setembro 30, 2004 Desculpa, a função não estava totalmente correta.Faltou te passar essa função: function Limp(c){ qtd = c.length; var v = ''; for (i=0; i < qtd; i++) for(t=0; t < 10; t++){ if(c.substring(i,i+1) == t && c.substring(i,i+1) != " ") v += c.substring(i,i+1);} return(v); } Põem junto com as outras, tu pode tirar aquela variavel "erroValue" que era da minha aplicação.para utilizar é só você passar o nome do campo para a função FormataDATA(nome_do_campo_a Ser_Formatado):<input type="text" name="campo" onChange="FormataDATA(this.name)">Ele formata, verifica e depois joga o valor resultante no teu campo e tá pronto....AbraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MauF Postado Setembro 30, 2004 Autor Denunciar Share Postado Setembro 30, 2004 Ba velh0o ma desculpa ta te aloprando mas não estou conseguindo acompanhar seu raciocinio....Vê se fica mair ou menos assim.. <script Language = "JavaScript"> function FormataDATA(data_cadastro){ erroValue = ""; DATA = getValue(nome); DATA = Limp(DATA); function Limp(c){ qtd = c.length; var v = ''; for (i=0; i < qtd; i++) for(t=0; t < 10; t++){ if(c.substring(i,i+1) == t && c.substring(i,i+1) != " ") v += c.substring(i,i+1);} return(v); } if(DATA.length == 8){ if(parseInt(DATA.substring(0,2)) > 31){ erroValue = ('Você digitou o dia incorretamente, a data foi apagada. Digite novamente'); DATA = ""; } else { dia = DATA.substring(0,2); if(parseInt(DATA.substring(2,4)) > 12){ erroValue = ('Você digitou o mês incorretamente, a data foi apagada. Digite novamente'); DATA = ""; } else { mes = DATA.substring(2,4); ano = DATA.substring(4,8); if(ano > 2100 || ano < 1900){ erroValue = ("Você digitou o ano incorretamente, a data foi apagada. Digite novamente"); DATA = ""; } else { tmpMes = mes -1; tmp = new Date(ano, tmpMes, dia); m = tmp.getMonth(); if(tmpMes != m){ erroValue = ('Data Inválida. A Data foi apagada, digite novamente'); DATA = "";} else DATA = dia + ('/') + mes + ('/') + ano; } } } } else { if(DATA.length > 0){ erroValue = ('Verifique a data digitada, pois está incorreta. A data deve ser digitada com seus 8 dígitos (dd mm aaaa). Ex.: 01/01/2004 (As barras não são necessárias.)'); DATA = ""; } } setValue(nome, DATA); } function getValue(nome){ var obj = eval("document.forms[0]."+nome+".value"); return obj; } function setValue(nome, valor){ obj = eval("document.forms[0]."+nome); obj.value = valor; } </script>O nome do meu campo para validadar data é data_cadastro....tenho que botar esse campo por todos que tiver nome..e no input tenho que fazer assim<input type="text" name="data_cadastro" size="15" maxlength="10" onChange="FormataDATA(this.name)"> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MauF Postado Setembro 30, 2004 Autor Denunciar Share Postado Setembro 30, 2004 Aluem sabe me dizer como funciona esse script.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Setembro 30, 2004 Denunciar Share Postado Setembro 30, 2004 Sem problemas, vou colocar a função certinha pra ti... <script Language = "JavaScript"> function FormataDATA(nome){ DATA = getValue(nome); DATA = Limp(DATA); if(DATA.length == 8){ if(parseInt(DATA.substring(0,2)) > 31){ alert('Você digitou o dia incorretamente, a data foi apagada. Digite novamente'); DATA = ""; } else { dia = DATA.substring(0,2); if(parseInt(DATA.substring(2,4)) > 12){ alert('Você digitou o mês incorretamente, a data foi apagada. Digite novamente'); DATA = ""; } else { mes = DATA.substring(2,4); ano = DATA.substring(4,8); if(ano > 2100 || ano < 1900){ alert("Você digitou o ano incorretamente, a data foi apagada. Digite novamente"); DATA = ""; } else { tmpMes = mes -1; tmp = new Date(ano, tmpMes, dia); m = tmp.getMonth(); if(tmpMes != m){ alert('Data Inválida. A Data foi apagada, digite novamente'); DATA = "";} else DATA = dia + ('/') + mes + ('/') + ano; } } } } else { if(DATA.length > 0){ alert('Verifique a data digitada, pois está incorreta. A data deve ser digitada com seus 8 dígitos (dd mm aaaa). Ex.: 01/01/2004 (As barras não são necessárias.)'); DATA = ""; } } setValue(nome, DATA); } function getValue(nome){ var obj = eval("document.forms[0]."+nome+".value"); return obj; } function setValue(nome, valor){ obj = eval("document.forms[0]."+nome); obj.value = valor; } function Limp(c){ qtd = c.length; var v = ''; for (i=0; i < qtd; i++) for(t=0; t < 10; t++){ if(c.substring(i,i+1) == t && c.substring(i,i+1) != " ") v += c.substring(i,i+1);} return(v); } </script> <input type="text" name="data_cadastro" size="15" maxlength="10" onChange="FormataDATA(this.name)">acho que é isso...não mexa em nada, agora tah tudo certo.... é só usar.....abraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ju_rezende Postado Maio 22, 2006 Denunciar Share Postado Maio 22, 2006 Pessoal agradeço muito a ajuda, mas como não entendo nada de jva, não estou conseguindo adaptar para o meu código, se alguém puder me dar uma força ficarei muito grata. na parte de verificação de data, está para data de nacimento mas quero somente para data válida, e não para data de nascimento, pois as agendas poderão ser feitas para datas posteriores aí dará problemas nos cadastros.Pessoal estou precisando disso urgente Me ajudem por favor Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
MauF
oi galera tem como fazer um validador de datas em java script...
Se tiver alguém conhece algum bom....
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
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.