Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/04/2009, 07:49
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

Como no podía ser de otra manera existen ciertas restricciones para que esto funcione en IE aunque yo me niego a bailarle el agua Microsoft. Prefiero que mis programas no funcionen en él a seguir sirviendo al monopolio. De todas formas para el que no le importe ayudar a MS IE dejo aqui unas funciones que haciendo uso de ellas solucionan el problema


Código javascript:
Ver original
  1. function posicionCursor()
  2. {
  3.        var tb = document.getElementById("miCuadrodeTexto")
  4.         var cursor = -1;      
  5.         // IE
  6.         if (document.selection && (document.selection != 'undefined'))
  7.         {
  8.             var _range = document.selection.createRange();
  9.             var contador = 0;
  10.             while (_range.move('character', -1))
  11.                 contador++;
  12.             cursor = contador;
  13.         }
  14.        // FF
  15.         else if (tb.selectionStart >= 0)
  16.             cursor = tb.selectionStart;
  17.    
  18.        return cursor;
  19. }
  20. function forzar_focus() {
  21.       // laCaja se refiere al input text
  22.     laCaja.onfocus=null;                            //quito
  23.     laCaja.focus();                                    //hago
  24.     setTimeout("laCaja.onfocus=focus_handler",1);    //pongo (retrasado para IE...)
  25. }
  26.  
  27. function ponCursorEnPos(pos){
  28.       // laCaja se refiere al input text
  29.     if(typeof document.selection != 'undefined' && document.selection){        //método IE
  30.         var tex=laCaja.value;
  31.         laCaja.value='';
  32.         forzar_focus();            //debería ser focus(), pero nos salta el evento y no queremos
  33.         var str = document.selection.createRange();
  34.         laCaja.value=tex;
  35.         str.move("character", pos);
  36.         str.moveEnd("character", 0);
  37.         str.select();
  38.     }
  39.     else if(typeof laCaja.selectionStart != 'undefined'){                    //método estándar
  40.         laCaja.setSelectionRange(pos,pos);
  41.         forzar_focus();            //debería ser focus(), pero nos salta el evento y no queremos
  42.     }
  43. }
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!