Crystian em qual versão do Firefox você testou? Eu testei no Mozilla 1.7.3 e no Firefox 1.0.3 e os dois retornaram o erro. Erro: too much recursion
Sabe o que é isto?
Será que não teria como eu utilizar o try...catch para ignorar este erro?
Função:
function verificaData(nomeForm,nomeCampo) {
var strCampo = document.forms[nomeForm].elements[nomeCampo];
if (strCampo.value != "") {
dia = strCampo.value.substring(0,2);
mes = strCampo.value.substring(3,5);
ano = strCampo.value.substring(6,10);
situacao = true;
// verifica o dia valido para cada mes
if ((dia < 01)||(dia < 01 || dia > 30) && ( mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31)
situacao = false;
// verifica se o mes e valido
else if (mes < 01 || mes > 12 )
situacao = false;
// verifica se e ano bissexto
else if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4))))
situacao = false;
if (!situacao) {
strCampo.focus();
strCampo.select();
alert("Data Inválida!");
}
}
}
Chamada:
<input type="text" size="10" maxlength="10" name="data"
onKeyPress="return mascaraData(form.name,this.name,event); return false;"
onBlur="verificaData(form.name,this.name);">