Foros del Web » Programando para Internet » Javascript »

Validar numeros y TAB con expresion regular (Mozilla Firefox)

Estas en el tema de Validar numeros y TAB con expresion regular (Mozilla Firefox) en el foro de Javascript en Foros del Web. Hola, he buscado en el foro y he visto algun post con este problema pero no me funcionan las soluciones propuestas..... Quiero que en un ...
  #1 (permalink)  
Antiguo 17/05/2011, 10:31
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 13 años, 8 meses
Puntos: 0
Validar numeros y TAB con expresion regular (Mozilla Firefox)

Hola, he buscado en el foro y he visto algun post con este problema pero no me funcionan las soluciones propuestas.....

Quiero que en un campo de un formulario solo se puedan meter numeros, pero que se admita el borrado de los mismos (Conseguido) y ademas que se permita el pulsado del tabulador para cambiar de campo (NO CONSEGUIDO).


La funcion que tengo es la siguiente:


Código:
function validarnum(e) 
   {
    	 tecla = (document.all) ? e.keyCode : e.which;
   	 if (tecla==8) return true;
   	 patron =/\d/;
   	 te = String.fromCharCode(tecla);
   	 return patron.test(te);
   }

en google chrome y en Internet Explorer me funciona bien, me admite el tabulador pero no me admite letras, asi que funciona bien.



En Mozilla Firefox no me funciona bien de ninguno de los dos modos.


Alguna solucion para Mozilla Firefox???
  #2 (permalink)  
Antiguo 17/05/2011, 19:11
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Validar numeros y TAB con expresion regular (Mozilla Firefox)

Por aquí parecen tener una solución al problema :)
http://www.webdeveloper.com/forum/sh...ad.php?t=96678
  #3 (permalink)  
Antiguo 17/05/2011, 21:07
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Validar numeros y TAB con expresion regular (Mozilla Firefox)

buenas,
el caso de firefox es un tanto raro y no lo habia notado hasta ahora la version 4. creo que antes no sucedia lo que explico a continuacion. de los tres tipos eventos de teclado, keypress es un tanto distinto. en particular, ciertas teclas no se detectan en dicho evento. por ejemplo, la mayoria de las teclas de controles: CTRL, ALT, SHIFT, END, HOME, PG UP, PG DW, etc. por eso puede ser que sea parte de tu problema; pero no solo llega hasta ahi. el caso de firefox hace algo muy raro. en keypress firefox detecta algunas de teclas de controles pero no las registra en la propiedad which, sino en keyCode. esa puede ser la otra razon por la que no te funciona.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 17/05/2011, 21:52
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Validar numeros y TAB con expresion regular (Mozilla Firefox)

mira, yo encontre por un foro esta funcion que sirve para tabular

Código PHP:
function tabular(e,obj) {
  
tecla=(document.all) ? e.keyCode e.which;
  if(
tecla!=13) return;
  
frm=obj.form;
  for(
i=0;i<frm.elements.length;i++)
    if(
frm.elements[i]==obj) {
      if (
i==frm.elements.length-1i=-1;
      break }
  
frm.elements[i+1].focus();
  return 
false;

y yo los numeros los valido asi

Código PHP:
function codigo(){
    var 
key window.event.keyCode;
    if (
key 48 || key 57){
    
window.event.keyCode=0;
    }

y te juro que me parece extraño que no te deje tabular :S
  #5 (permalink)  
Antiguo 18/05/2011, 02:04
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Validar numeros y TAB con expresion regular (Mozilla Firefox)

La verdad es que como digo, en Internet Explorer y en Google Chrome me funciona perfecto, si pulso alguna letra no me la introduce, solo me permite escribir numeros, borrarlos y pulsar el tabulador para cambiar de campo en el formulario.

Pero en Mozilla Firefox no me funciona el tabulador.... (Decir que uso la version 3.5.19, y no tengo pensado actualizar a la 4 al menos de momento)


Voy a probar las posibles soluciones que me habeis proporcionado y os comento el resultado.


EDITADO:


A ver, se supone que la linea:
Código:
if (tecla==8) return true;
Es para que me permita borrar lo numeros en el campo del formulario en mozilla.
(en chrome y IE si prescindo de esa linea, si me permite el uso de la tecla backspace)


Entonces se supone que si sustituyo esa linea por esta:
Código:
if (tecla==9) return true;
No me permitiria el backspace, pero si el tabulador, al menos eso creo al ser el codigo del tabulador el 9.....

Pues no es asi, aun por esas no me funciona,....

Seguro que es alguna cosa sencilla...... pero no logro dar con ello (parte de culpa la tiene mi escasa experiencia y conocimiento de javascript).

Última edición por MARTIN_LAW; 18/05/2011 a las 03:06

Etiquetas: expresion, firefox, mozilla, numeros, regular, tab
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:40.