Bueno, he visto tu post y he estado trabajando en un código, a ver si me salía. De momento sólo vale para HH:MM y no se puede modificar... pero mirare a ver si puedo hacer algo mejor:
Código PHP:
<input type="text" id="caja" />
<script>
var laCaja=document.getElementById("caja");
function ponMascara(valueActual,mascaraTotal) {
var mascara=mascaraTotal.substring( valueActual.length, mascaraTotal.length );
laCaja.value=valueActual+mascara;
}
var valor="";
var mascaraDef="HH:MM";
laCaja.onkeypress=function(e){
var code, targ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
// Detecta o codigo da tecla
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;
var caracter = String.fromCharCode(code);
//sólo dejamos colocar numeros en la caja
if (code < 48 || code > 57) //no es un número
return false;
if (code==8) { //es el backspace
//borramos un caracter de valor, y si hay un ":" borramos dos
if(valor.length==3) //hay colocado HH:
valor=valor.substring(0,1); //dejamos H
else if(valor.length>0) //si hay algo que borrar, lo borraremos
valor=valor.substring(0,valor.length-1);
ponMascara(valor,mascaraDef);
return false;
}
else {
if(valor.length==2)
valor+=":";
if(valor.length<mascaraDef.length)
valor+=caracter;
ponMascara(valor,mascaraDef);
//y no escribimos nada en la caja
return false;
}
}
ponMascara("",mascaraDef);
</script>
Un saludo.