Validação para data maior do que a atual
Ola pessoal boa tarde.
Estou com um pequeno problema em minhas validações.
Tenho umas consultas e formulários de um cadastro que eu estou desenvolvendo que não posso permitir que o usuário digite uma data maior do que a atual.
Eu desenvolvi o seguinte código :
<script language="JavaScript">
// inicia a validação dos campos
data = new Date();
dia = data.getDate();
mes = data.getMonth();
ano = data.getFullYear();
meses = new Array(12);
meses[0] = "01";
meses[1] = "02";
meses[2] = "03";
meses[3] = "04";
meses[4] = "05";
meses[5] = "06";
meses[6] = "07";
meses[7] = "08";
meses[8] = "09";
meses[9] = "10";
meses[10] = "11";
meses[11] = "12";
//data em formato dd/mm/aaaa
datac = dia + "/" + meses[mes] + "/" + ano;
function validadados(form){
//validação para campo vazio
if(form.start_date.value == "")
{
alert("Digite uma data de Início");
return false;
}
//se a data de inicio for maior do que a data atual ativa validação
//essa é a validação que está com problemas
if (form.start_date.value > datac)
{
alert("a data digitada é maior do que a atual:\n" + form.start_date.value + "\n" + datac);
return false;
}
//se passar em todas as validações
return true;
}
//aceita apenas numeros
function mascara(o,f){
v_obj=o
v_fun=f
setTimeout("execmascara()",1)
}
function execmascara(){
v_obj.value=v_fun(v_obj.value)
}
//adiciona barras
function all_date(v){
v=v.replace(/\D/g,"")
v=v.replace(/(\d{2})(\d)/,"$1/$2")
v=v.replace(/(\d{2})(\d)/,"$1/$2")
return v
}
</script>
<form id="addconsult" name="addconsult" method="post" action="#" onsubmit= "return validadados(this)" ">
<table id="box-table-a">
<tr>
<td width="20%" >Data: </td>
<td align="left">
<input type="text" name="start_date" size="10" maxlength="10" onKeyUp="mascara(this,all_date);">
*</td>
</tr>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Adicionar" class="button"> <input type="button" name="cancel" value="Cancelar" class="button" onclick="window.location='#';"></td>
</tr>
</table>
</form>
Como já deixei marcado a valição que está apresentando problemas é:
if (form.start_date.value > datac)
Não sei o que ocorre mais é como se ele validasse apenas o dia e não a data completa.
um exemplo se eu digitar dia 15/04/2014 ele não vai permitir.
fucei bastante na net mais não encontrei nada que possa me ajudar nisso.
Fico agradecido se alguém tiver solução
Discussão (3)
Carregando comentários...