Caros,
Simplesmente não sei onde está o erro. Aconteceu depois q eu coloquei a função bissexto. O erro está na chamada ou na própria função bissexto. Segue o código:
function verifica_data() {
dia = (document.forms[0].dataDe.value.substring(0,2));
barra1 = (document.forms[0].dataDe.value.substring(2,3));
mes = (document.forms[0].dataDe.value.substring(3,5));
barra2 = (document.forms[0].dataDe.value.substring(5,6));
ano = (document.forms[0].dataDe.value.substring(6,10));
situacao = "";
if (document.forms[0].dataDe.value.length < 10) {
situacao = "falsa";
}
if (barra1 != "/" || barra2 != "/") {
situacao = "falsa";
}
switch (mes) {
case 4 :
case 6 :
case 9 :
case 11:
numDias = 30;
break;
case 2 :
if (bissexto(ano)) {
numDias = 29;
}
else {
numDias = 28;
}
break;
default:
numDias = 31;
break;
}
if (dia < 0 || dia > numDias) {
situacao = "falsa";
}
// verifica se o mes e valido
if (mes < 01 || mes > 12 ) {
situacao = "falsa";
}
if (situacao == "falsa") {
alert("Data inválida!");
document.forms[0].dataDe.focus();
}
else {
document.forms[0].submit();
}
}
function bissexto(ano){
if ((ano % 4 == 0) && ((ano % 100 != 0) || (ano % 400 == 0))) {
return true;
}
else {
return false;
}
}