Foros del Web » Programando para Internet » Javascript »

Que tengo mal en este código

Estas en el tema de Que tengo mal en este código en el foro de Javascript en Foros del Web. Buenas Tardes, Verán, estoy haciendo una función para saber si es número o no el dato almacenado en una caja de texto, sin embargo, al ...
  #1 (permalink)  
Antiguo 27/06/2004, 10:27
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Que tengo mal en este código

Buenas Tardes,

Verán, estoy haciendo una función para saber si es número o no el dato almacenado en una caja de texto, sin embargo, al perder el foco la caja de texto (Que es entonces cuando llamo a la función), me dice que se esperaba un objeto, este es el código, haber si pueden decirme que tengo mal, desde ya, muchas gracias:



<script>
function EsNumero(formulario, caja){
if Nan(formulario.caja){
alert('El valor de '+caja+' debe ser numérico');
formulario.caja.focus();
}
}
</script>
<form name="frm">
<input type="text" name="txtprueba" onBlur="javascript:EsNumero('frm', 'txtprueba');">
<input type="text" name="txtotra" onBlur="javascript:EsNumero('frm', this);">
</form>


Valdria tanto poniendo this, que como poniendo el nombre de la caja de texto, ¿Verdad?
__________________
Charlie.

Última edición por chcma; 27/06/2004 a las 10:28 Razón: No introduje bien el título.
  #2 (permalink)  
Antiguo 27/06/2004, 10:58
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola chcma:

Con un par de arreglillos funciona :

Código:
<html>
	<head>
		<script>
			function EsNumero(formulario, caja){
				var x = document.forms[formulario][caja].value;
				if (parseFloat(x) != x)	{
					alert('El valor de ' + x + ' debe ser numérico');
					formulario.caja.focus();
				}
			}
		</script>
	</head>
	<body>
		<form name="frm">
			<input type="text" name="txtprueba" onBlur="javascript:EsNumero('frm', 'txtprueba');">
			<input type="text" name="txtotra" onBlur="javascript:EsNumero('frm', this.name);">
		</form>
	</body>
</html>
He visto en otro mensaje una solución mejor, pero no me acuerdo como era.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 27/06/2004, 11:06
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años
Puntos: 25
Hola.

Aquí deja otra solución.
Código:
<script>
function EsNumero(caja){
if (isNaN(caja.value)){
alert('El valor de '+caja.name+' debe ser numérico');
caja.focus();
}
}
</script>
<form name="frm">
<input type="text" name="txtprueba" onBlur="EsNumero(this);">
<input type="text" name="txtotra" onBlur="EsNumero(this);">
</form>
Un saludo.
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 03:49.