Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/04/2009, 07:47
matak
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: mascaras para Float, Int y hora

Y la tercera es para formato hora

Código javascript:
Ver original
  1. //////////////////////////////////////////////////
  2. ////////////////// By Matrak /////////////////////
  3. /* Especificacion */
  4. // ob           ->  Objeto input text
  5. // ponMascara   ->  true o false, se refiere a si tiene que poner la mascara, se empleará en el evento onfocus
  6. // valida       ->  true o false, se refiere a si tiene que validar, se empleará en el evento onblur
  7. // Formato hh:mm
  8. //
  9. // input ejemplo:
  10. //
  11. // <input name="digitos" type="text" onfocus="mascaraHora(this,true,false)" onblur="mascaraHora(this,false,true)" onkeyup="mascaraHora(this,false,false)" value="">
  12. //
  13.  
  14. function mascaraHora(ob,ponMascara,valida) {
  15.   cursor=ob.selectionStart;
  16.   /* Validacion cuando la caja pierde el foco*/
  17.   if(valida) {
  18.     if (/^(0[1-9]|1\d|2[0-3]):([0-5]\d)/.test(ob.value)) {
  19.       return true;
  20.     }else{
  21.       ob.value='';
  22.       return false;
  23.     }
  24.   }
  25.   /* Pone mascara si la caja esta en blanco */
  26.   if(ponMascara) {
  27.     if (ob.value=='') ob.value='hh:mm';
  28.     ob.setSelectionRange(0,0);
  29.     return true;
  30.   }
  31.   /* Una vez la hora es correcta no deja añadir mas nada */
  32.   if (ob.value.length>5 && /^(0[1-9]|1\d|2[0-3]):([0-5]\d)/.test(ob.value) && cursor > 5) {
  33.     ob.value=ob.value.slice(0,ob.value.length-1)
  34.     return true;
  35.   }
  36.   /* Procesa los numeros que se van introduciendo */
  37.   if (ob.value.length>5){
  38.     switch (cursor){
  39.     case 1:
  40.       if (/^[012]/.test(ob.value[cursor-1])) {
  41.         if (/^[4-9]/.test(ob.value[cursor+1]) && /^[2]/.test(ob.value[cursor-1])) {
  42.           //alert('siii')
  43.           ob.value=ob.value[cursor]+ob.value.substring(cursor+1,ob.value.length);
  44.           ob.setSelectionRange(cursor-1,cursor-1);
  45.         }else{
  46.           ob.value=ob.value.substring(0,cursor)+ob.value.substring(cursor+1,ob.value.length);
  47.           ob.setSelectionRange(cursor,cursor);
  48.         }
  49.       }else{
  50.         ob.value=ob.value.substring( cursor,ob.value.length)
  51.         ob.setSelectionRange(cursor-1,cursor-1);
  52.       }
  53.       break;
  54.     case 2:
  55.       if (/^[2]/.test(ob.value[cursor-2])) {
  56.         if (/^[0-3]/.test(ob.value[cursor-1])) {
  57.           ob.value=ob.value.substring(0,cursor)+ob.value.substring(cursor+1,ob.value.length);
  58.           ob.setSelectionRange(cursor+1,cursor+1);
  59.         }else{
  60.           ob.value=ob.value.substring( 0,cursor-1)+ob.value.substring( cursor,ob.value.length)
  61.           ob.setSelectionRange(cursor-1,cursor-1);
  62.         }
  63.       }else if (/^[01]/.test(ob.value[cursor-2])) {
  64.         if (/^[0-9]/.test(ob.value[cursor-1])) {
  65.           ob.value=ob.value.substring(0,cursor)+ob.value.substring(cursor+1,ob.value.length);
  66.           ob.setSelectionRange(cursor+1,cursor+1);
  67.         }else{
  68.           ob.value=ob.value.substring( 0,cursor-1)+ob.value.substring( cursor,ob.value.length)
  69.           ob.setSelectionRange(cursor-1,cursor-1);
  70.         }
  71.       }else{
  72.         ob.value=ob.value.substring( 0,cursor-1)+ob.value.substring( cursor,ob.value.length)
  73.         ob.setSelectionRange(cursor-1,cursor-1);
  74.       }
  75.       break;
  76.     case 3:
  77.         if (/^:/.test(ob.value[cursor-1])) {
  78.           ob.value=ob.value.substring(0,cursor)+ob.value.substring(cursor+1,ob.value.length);
  79.           ob.setSelectionRange(cursor,cursor);
  80.         }else{
  81.           ob.value=ob.value.substring( 0,cursor-1)+ob.value.substring( cursor,ob.value.length)
  82.           ob.setSelectionRange(cursor-1,cursor-1);
  83.         }
  84.       break;
  85.     case 4:
  86.         if (/^[0-5]/.test(ob.value[cursor-1])) {
  87.           ob.value=ob.value.substring(0,cursor)+ob.value.substring(cursor+1,ob.value.length);
  88.           ob.setSelectionRange(cursor,cursor);
  89.         }else{
  90.           ob.value=ob.value.substring( 0,cursor-1)+ob.value.substring( cursor,ob.value.length)
  91.           ob.setSelectionRange(cursor-1,cursor-1);
  92.         }
  93.       break;
  94.     case 5:
  95.         if (/^[0-9]/.test(ob.value[cursor-1])) {
  96.           ob.value=ob.value.substring(0,cursor)+ob.value.substring(cursor+1,ob.value.length);
  97.           ob.setSelectionRange(cursor,cursor);
  98.         }else{
  99.           ob.value=ob.value.substring( 0,cursor-1)+ob.value.substring( cursor,ob.value.length)
  100.           ob.setSelectionRange(cursor-1,cursor-1);
  101.         }
  102.       break;
  103.     default:
  104.       alert('Error!!!')
  105.       break;
  106.     }
  107.     return true
  108.   }else if(ob.value.length<5){
  109.     ob.value='hh:mm';
  110.     ob.setSelectionRange(0,0);
  111.   }
  112. }
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!