Foros del Web » Programando para Internet » Javascript »

Problema validar Formulario

Estas en el tema de Problema validar Formulario en el foro de Javascript en Foros del Web. Hola, estoy validando un formulario pero tengo un problema, todo iva bien hasta que me decidi a validar a cantidad de palabras que se escriben ...
  #1 (permalink)  
Antiguo 25/04/2006, 14:57
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 19 años, 1 mes
Puntos: 1
Pregunta Problema validar Formulario

Hola, estoy validando un formulario pero tengo un problema, todo iva bien hasta que me decidi a validar a cantidad de palabras que se escriben en el campo llamado "nombre", el codigo es este:

<!--
function validarform(f)
{
palabras=f.Nombre.value.split(" ");
if(palabras < 2)
alert("Debe haber 2 palabras en el nombre");
Forma.Nombre.focus();
return (false);
}
if((f.Email.value.indexOf(".") == -1)||
(f.Email.value.indexOf("@") == -1)||
(f.Email.value.length < 5)) {
alert("La Dirección de Correo No Es Válida");
Forma.Email.focus();
return (false);
}
if (f.PaisLoc.value.length < 4) {
alert("Escribe un Minimo de 4 Letras Como País");
Forma.PaisLoc.focus();
return (false);
}
if (f.Comentario.value.length < 10) {
alert("Se Requiere de un Minimo de 10 Letras Como Comentario");
Forma.Comentario.focus();
return (false);
}
else
return true
}
// -->


El caso es que cuando carga la pagina automaticamente me manda un error que dice "la instruccion 'return' esta fuera de una funcion"

Creo que el problema esta en la validacion del campo "Nombre" que lo que quiero es que verifique que haya un minimo de 2 palabras. Pero no encuentro donde esta el error, a ver si qlguien por ahi con la cabeza mas fria me pudiera decir donde me estoy equivocando please.

Muchas gracias y saludos!!!
  #2 (permalink)  
Antiguo 25/04/2006, 17:10
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
Cita:
function validarform(f)
{
palabras=f.Nombre.value.split(" ");
if(palabras.length < 2){
alert("Debe haber 2 palabras en el nombre");
Forma.Nombre.focus();
return (false);
}
if((f.Email.value.indexOf(".") == -1)||
(f.Email.value.indexOf("@") == -1)||
(f.Email.value.length < 5)) {
alert("La Dirección de Correo No Es Válida");
Forma.Email.focus();
return (false);
}
if (f.PaisLoc.value.length < 4) {
alert("Escribe un Minimo de 4 Letras Como País");
Forma.PaisLoc.focus();
return (false);
}
if (f.Comentario.value.length < 10) {
alert("Se Requiere de un Minimo de 10 Letras Como Comentario");
Forma.Comentario.focus();
return (false);
}
// borrar else
return true
}

lo que está en rojo es lo que cambié, lo que esta en azul deberías poner el false sin paréntesis( al menos yo lo utilizo así).

Adicionalmente, no se bien de donde sale "Forma" pero creo que deberías cambiarlo por "f"(claro que yo no se el codigo restante, pero si no funciona de tu forma probá cambiando forma por f)

No lo probé, pero si no entiendo mal el problema venía que te faltaba una llave arriba.

saludos
__________________
by Capitán Buscapina
.
  #3 (permalink)  
Antiguo 25/04/2006, 17:28
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 19 años, 1 mes
Puntos: 1
De acuerdo Muchas gracias, problema resuelto

Ok. muchas gracias amigo, todo salio bien y si era la llave faltante el problema.

Solo para concluir la pregunta y aclarar todo ya que veo que me falto algo de información, el codigo quedo así y asi funcionó:

<!--
function validarform(f)
{
palabras=f.Nombre.value.split(" ");
if(palabras.length < 3){
alert("Debe haber 2 palabras en el nombre");
Forma.Nombre.focus();
return (false);
}
if((f.Email.value.indexOf(".") == -1)||
(f.Email.value.indexOf("@") == -1)||
(f.Email.value.length < 5)) {
alert("La Dirección de Correo No Es Válida");
Forma.Email.focus();
return (false);
}
if (f.PaisLoc.value.length < 4) {
alert("Escribe un Minimo de 4 Letras Como País");
Forma.PaisLoc.focus();
return (false);
}
if (f.Comentario.value.length < 10) {
alert("Se Requiere de un Minimo de 10 Letras Como Comentario");
Forma.Comentario.focus();
return (false);
}
else
return true
}
// -->


Probe quitando los parentesis de los false y quitando el else y tambien funciona.

Otra cosa, eso de Forma viene del formulario, asi se llama el formulario para que el focus funcione asi: Forma.Comentario.focus para que coloque el cursor en el campo llamado Comentario en el formulario llamado Forma.

Bueno asi quedo y funciona perfectamente.

Gracias de nuevo y saludos!!!
  #4 (permalink)  
Antiguo 26/04/2006, 01:48
 
Fecha de Ingreso: noviembre-2005
Mensajes: 37
Antigüedad: 18 años, 5 meses
Puntos: 0
podria validarlo con PHP?? es mucho mas sencillo para calcular el numero de caracteres o incluso de palabras si las divides por algun signo de puntuacion y las guardas en un array-...
  #5 (permalink)  
Antiguo 26/04/2006, 05:08
 
Fecha de Ingreso: junio-2004
Mensajes: 91
Antigüedad: 19 años, 11 meses
Puntos: 0
De acuerdo mejor en js

Todo lo que se pueda hacer en el cliente (pc dl usuario) que se haga en el cliente. Validarlo con php seria validarlo en el servidor, y este hay q descargarlo lo mas posible. Asi que mejor validar con javascript.

UN SALUDO...
  #6 (permalink)  
Antiguo 26/04/2006, 09:58
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
Cita:
Iniciado por bincito
Todo lo que se pueda hacer en el cliente (pc dl usuario) que se haga en el cliente. Validarlo con php seria validarlo en el servidor, y este hay q descargarlo lo mas posible. Asi que mejor validar con javascript.

UN SALUDO...
en ralidad no es mejor en JS, mejor es en el servidor, luego si se puede validar en JS mejor(justamente para disminuir el trabajo en el server).

Si solo hicieras la validacion en JS, sería un agujero de seguridad imprecionante.

Por que? Como podría "saltarse JS"
1.- Deshabilitando javascript
2.- Haciendo un formulario "copia" del original pero sin validacion
3.- teniendo instalado simples aplicaciones en el navegador que "modifiquen " a gusto la pagina(WebDeveloper,etc....)
4.- Etc, Etc,etc



saludos
__________________
by Capitán Buscapina
.
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 18:24.