Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/10/2007, 12:38
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 7 meses
Puntos: 45
Re: Problema tabulación y borrado al restringir input

Hola:

La tabulación en una expresión regular se escribe normalmente como \t, pero en este caso String.fromCharCode() para la tabulación no te va a devolver una cadena que coincida con la expresión regular \t (por lo menos en firefox, su valor para tecla es 0, y escape(String.fromCharCode(0)) da un hexadecimal cero %00 ).

Así que basta con dejar pasar el cero, tal y como dejamos pasar el 8:

Código PHP:
<input type="text" id="caja" />
<
input type="text" />

<
script type="text/javascript">
<!--

// document.getElementById abreviado
function $(x) { return document.getElementById(x); }

function 
letras1(evt) { 
    var 
tecla = (document.all) ? event.keyCode evt.which
    if ( (
tecla==8) || (tecla==0) ) return true;
    var 
patron =/[A-Z ÁÀÉÈÍÌÓÒÚÙ´`ÑÇ]/i;
    var te = String.fromCharCode(tecla);
    return patron.test(te);
}

$("caja").onkeypress = letras1;


// -->
</script> 
Para el botón suprimir no he encontrado problemas tampoco, y para IE tampoco. Por cierto, te he mejorado la validación de la variable tecla a su forma más correcta. También te faltaban muchos var (aunque no se si el código estaba embebido en uno más grande, pero sería más comodo que patron fuese global). A patron también le he dado cambios para que sea case insensitive, más cómodo.

Por último comentar el código entre <script> y </script> y olvidarnos del atributo language


Un saludo y espero que así te funcione bien
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.