Jump to content


Photo

Ajuda Com Validação De Datas


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 D-Inho

D-Inho

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Masculino
  • Localidade:SP

Posted 11/01/2012, 14:59

Boa tarde gente... Então, sou iniciante em javascript e estou com o seguinte problema:
Tenho uma função que compara duas datas (a inicial com a final) e até funciona e tal, só que eu preciso que apareça um alert se o usuário selecionar uma data inicial que seja menor que a atual.

<script type="text/javascript">
// Verifica se a data inicial é maior que a final
function verificaDatas(dtInicial, dtFinal){

var dtini = dtInicial;
var dtfim = dtFinal;

datInicio = new Date(dtini.substring(6,10),
dtini.substring(3,5),
dtini.substring(0,2));
datInicio.setMonth(datInicio.getMonth() - 1);

datFim = new Date(dtfim.substring(6,10),
dtfim.substring(3,5),
dtfim.substring(0,2));
datFim.setMonth(datFim.getMonth() - 1);

if(datInicio <= datFim){
return true;
} else {
alert('ATENÇÃO: Preencha as datas corretamente!');
document.getElementById('dtTermino'); ---------------------------> Nome do meu campo no form
return false;
}

}
// Valida o campo passando o foco
function verificaFoco(objeto,foco) {
if (objeto.value.length == 10) {
foco.focus();
return false;}
}

// colocar no evento onKeyUp passando o objeto como parametro

function FormatMesAno(val)
{
var strPass = val.value;
var mikExp = /[0123456789]/;
for(i=0; i<strPass.length; i++){
// charAt -> retorna o caractere posicionado no índice especificado
var lchar = val.value.charAt(i);
var nchar = val.value.charAt(i+1);
if(i==0){

// search -> retorna um valor inteiro, indicando a posição do inicio da primeira
// ocorrência de expReg dentro de instStr. Se nenhuma ocorrencia for encontrada o método retornara -1
// instStr.search(expReg);
if ((lchar.search(mikExp) != 0) || (lchar>3)){
val.value = "";
}

}else if(i==1){
if(lchar.search(mikExp) != 0){
// substring(indice1,indice2)
// indice1, indice2 -> será usado para delimitar a string
var tst1 = val.value.substring(0,(i));
val.value = tst1;
continue;
}

if ((nchar != '/') && (nchar != '')){
var tst1 = val.value.substring(0, (i)+1);
if(nchar.search(mikExp) != 0)
var tst2 = val.value.substring(i+2, strPass.length);
else
var tst2 = val.value.substring(i+1, strPass.length);
val.value = tst1 + '/' + tst2;
}

}else if(i==4){
if(lchar.search(mikExp) != 0){
var tst1 = val.value.substring(0, (i));
val.value = tst1;
continue;
}

if ((nchar != '/') && (nchar != '')){
var tst1 = val.value.substring(0, (i)+1);
if(nchar.search(mikExp) != 0)
var tst2 = val.value.substring(i+2, strPass.length);
else
var tst2 = val.value.substring(i+1, strPass.length);
val.value = tst1 + '/' + tst2;
}

}
if(i>=6){
if(lchar.search(mikExp) != 0) {
var tst1 = val.value.substring(0, (i));
val.value = tst1;
}
}
}

if(strPass.length>10)
val.value = val.value.substring(0, 10);
return true;
}
</script>

<input type = "submit" name="btnEnviar" onClick="return verificaDatas(curso.dtInicio.value,curso.dtTermino.value);" value="Salvar e Prosseguir >>" align="center"/>



A comparação de início e término está perfeita. Mas não consigo fazer com que a data inicial seja maior que a atual. Me ajudem por favor!




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq