Foros del Web » Programando para Internet » Javascript »

Pregunta sencilla

Estas en el tema de Pregunta sencilla en el foro de Javascript en Foros del Web. Hola a todos, espero que me ayuden...la cuestion es que estoy validando un formulario HTML y para ello cuento con una funcion javascript que valida ...
  #1 (permalink)  
Antiguo 18/02/2008, 18:06
 
Fecha de Ingreso: febrero-2008
Mensajes: 4
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta sencilla

Hola a todos, espero que me ayuden...la cuestion es que estoy validando un formulario HTML y para ello cuento con una funcion javascript que valida la entrada de diferentes campos, pero creo que me falta algo en el codigo ya que el browser me detecta la irregularidad pero no me permite arreglarla, es decir que me envian los datos de cualquier forma al servidor..... este es le codigo espero puedan ayudarme

function Validar()
{
//Validar en Nombre del cliente
if(document.Formulario.Nombre.value.length == 0)
{
alert ("Introduzca el nombre del cliente");
document.Formulario.Nombre.focus();
return;
}

if(document.Formulario.Marca.value.length == 0)
{
alert ("Introduzca la marca del producto");
document.Formulario.Marca.focus();
return;
}

valor = document.Formulario.Precio.value;
valor = parseFloat(valor);
if(isNaN(valor))
{
alert ("Debe introducir un valor numerico en el precio");
document.Formulario.Precio.focus();
return;
}

alert ("El formulario ha sido correctamente enviado");
document.Formulario.submit();


}

gracias de antemano
  #2 (permalink)  
Antiguo 18/02/2008, 19:57
 
Fecha de Ingreso: febrero-2008
Mensajes: 5
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Pregunta sencilla

Soy nuevo en js pero he mirado tu codigo y mi pregunta es.

Quieres saber si los campos estan vacios, para que preguntar

if(document.Formulario.Nombre.value.length == 0)

Si con un:

if(document.Formulario.Nombre.value == "")

Seria menos complejo, aparte no estoy seguro pero puede que el problema es que el .lenght si no ahi valor devuelva un NULL y no un 0, pero no estoy seguro de eso.

Y la funcion isNaN() nunca la he utilizado pero supongo que sera para preguntar si es un numero, o un numero float.
Pero por que pones valor=parseFloat(valor); antes, si la siguiente función es para preguntar si es un numero, mejor no seria:

valor = document.Formulario.Precio.value;
if(isNaN(valor))
{
alert ("Debe introducir un valor numerico en el precio");
document.Formulario.Precio.focus();
return;
}
else
{
valor = parseFloat(valor);
}

Puede que no tenga razon, pero yo comento mi punto de vista haber si te ayuda para algo.

Sino haber si alguien nos explica el codigo a los dos entonces xd.

;) un saludo.
  #3 (permalink)  
Antiguo 18/02/2008, 22:22
 
Fecha de Ingreso: febrero-2008
Mensajes: 4
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Pregunta sencilla

Agredecido por tu ayuda
El caso es que a la hora de comprobar el campo para la introduccion de los numeros puede introducirse tambien un float, es por eso que lo convierto primero, no se si sera una buena practica pero fue lo que se me ocurrio en ese momento....el otro punto adopte tu sugerencia y me limite al

if(document.Formulario.Marca.value == "")
muchas gracias
  #4 (permalink)  
Antiguo 20/02/2008, 08:04
 
Fecha de Ingreso: febrero-2008
Mensajes: 5
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Pregunta sencilla

Entiendo a lo que te refieres, pero mi duda es.

Por que convertir algo que no sabes si es numerico.

No seria mejor preguntar antes si es numerico, y en tal caso si lo es transformarlo? En vez de transformar directamente.

Un estilo esto:

valor = document.Formulario.Precio.value;
if (/^([0-9]||[,]||[.])*$/.test(valor))
{
valor = parseFloat(valor);
}

El if admite numeros y numeros con comas y puntos.
No he hecho un testeo de eso, pero creo que es correcto.

Ya me informaras.
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 19:18.