Boas!
Encontrei uma função para formatação de data nesse endereço:
http://www.htmlstaff.org/ver.php?id=18520
Fiz algumas modificações colocando alguns limites para minimizar as possíveis entradas inválidas do usuário, mantendo é claro, a validação no envio dos dados do formulário.
Algumas das alterações:
- Se o primeiro valor digitado for maior que 3, a saída resultante é, por exemplo: 04/
- Se o primeiro valor digitado for 3 e o segundo for maior que 1, a saída resultante é, por exemplo: 03/02/
- Se o usuário digita um valor para a dezena do mês e este for maior que 1, a saída resultante é, por exemplo: 05/02/
- Se o primeiro digito do ano for maior que 2, a saída resultante é, por exemplo: 31/11/2
Pra quem estiver interessado:
[code]
formatado data em javascript
function Formatadata(Campo, teclapres)
{
var tecla = teclapres.keyCode;
var vr = new String(Campo.value);
vr = vr.replace("/", "");
vr = vr.replace("/", "");
vr = vr.replace("/", "");
tam = vr.length + 1;
if (tecla != 8 && tecla != 8)
{
if (tam > 0 && tam < 2)
{
Campo.value = vr.substr(0, 2) ;
}
if(tam == 2)
{
if(vr > 3)
Campo.value = '0' + vr.substr(0, 1) + '/';
}
if (tam > 2 && tam < 4)
{
if(tam == 3 && (vr.substr(0, 1) >= 3))
{
if(vr.substr(1, 1) > 1)
Campo.value = '0' + vr.substr(0, 1) + '/' + '0' + vr.substr(1, 1) + '/';
else
Campo.value = vr.substr(0, 2) + '/';
}
else
Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2);
}
if(tam == 4)
{
if(vr.substr(2, 1) > 1)
Campo.value = vr.substr(0, 2) + '/' + '0' + vr.substr(2,1) + '/';
}
if (tam > 4 && tam < 7)
{
if(tam == 6 && (vr.substr(4, 1) > 2))
{
Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + '2';
}
else if(tam == 5 && ((vr.substr(3, 1) > 2) && (vr.substr(2, 1) == 1)))
Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 1);
else
Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, 4);
}
if(tam > 9)
Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, 4);
}
}
</script>
</head>
<body>
<form method="post" action="arquivo.php">
<p>
<label>Data:</data>
<input type="text" name="data" maxlength="10" onkeyup="Formatadata(this,event)" />
</p>
</form>
</body>
[/code]
Espero que seja útil, agradeço qualquer sugestão ou crítica…
Obrigado, até mais!