Foros del Web » Programando para Internet » Javascript »

ingresar solo numeros

Estas en el tema de ingresar solo numeros en el foro de Javascript en Foros del Web. Buenas estuve buscando en la web pero casi todos coinciden con una misma funcion.... yo uso una función para poder solo ingresar numeros a los ...
  #1 (permalink)  
Antiguo 26/11/2009, 16:34
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
ingresar solo numeros

Buenas estuve buscando en la web pero casi todos coinciden con una misma funcion.... yo uso una función para poder solo ingresar numeros a los textbox

Código:
var navegador = window.Event ? true : false;
function Num(evento){ 
	var key = navegador ? evento.which : evento.keyCode; 
	return (key <= 8 || key <= 13 || (key >= 48 && key <= 57) || (key == 45));
}
Me funciona en casi todos los navegadores pero no en IE8, conocen otra donde si lo haga?
__________________
Quitenme la vida pero no la bebida.
  #2 (permalink)  
Antiguo 26/11/2009, 20:25
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: ingresar solo numeros

aunque no lo creas, el problema esta en window.Event. parece que iexplorer ha ido agregando algunos objetos, no se si para engañar a javascript o si un paso hacia el esandar. resulta que Event existe en iexplorer8 pero cuando trato de buscarle propiedades no le encuentro ninguna.

en lugar de identificar si el navegador es compatible, el cual la mayoria de los navegadores modernos lo son, mejor identifica si el navegador es iexplorer. puedes hacerlo con el objeto document.all.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 27/11/2009, 09:11
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: ingresar solo numeros

mmm osea haria algo asi:

Código:
ie = (document.all)? true:false

	
if (ie) 
{
    var navegador = Event ? true : false;
function Num(evento){ 
	var key = navegador ? evento.which : evento.keyCode; 
	return (key <= 8 || key <= 13 || (key >= 48 && key <= 57) || (key == 45));
 }	
}
else
{
var navegador = window.Event ? true : false;
function Num(evento){ 
	var key = navegador ? evento.which : evento.keyCode; 
	return (key <= 8 || key <= 13 || (key >= 48 && key <= 57) || (key == 45));
}
}
__________________
Quitenme la vida pero no la bebida.
  #4 (permalink)  
Antiguo 27/11/2009, 09:16
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: ingresar solo numeros

lo unico que tenias que cambiar era la siguiente linea
Código:
var navegador = window.Event ? true : false;

// cambiarla por
var navegador = document.all ? false : true;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 27/11/2009, 10:49
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: ingresar solo numeros

muchas gracias por tu ayuda, ahora funciona correctamente
__________________
Quitenme la vida pero no la bebida.
  #6 (permalink)  
Antiguo 27/11/2009, 10:53
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ingresar solo numeros

Otra opción sería:
Código Javascript:
Ver original
  1. function Num(evento){
  2.     var key = evento.which || evento.keyCode;
  3.     return (key <= 8 || key <= 13 || (key >= 48 && key <= 57) || (key == 45));
  4. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 27/11/2009, 11:46
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: ingresar solo numeros

mmm supongo que debe ser igual a este:

Código:
function Num(evt){ 
	var charCode = (evt.which) ? evt.which : event.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
	return true;
}
gracias por las funciones
__________________
Quitenme la vida pero no la bebida.
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 00:58.