Foros del Web » Programando para Internet » Javascript »

Validacion de formulario.

Estas en el tema de Validacion de formulario. en el foro de Javascript en Foros del Web. Hola, he estado buscando pero no encuentro solucion para lo que quiero hacer. Tengo un formulario con varios campos y en dos de esos campos ...
  #1 (permalink)  
Antiguo 21/02/2009, 12:07
 
Fecha de Ingreso: diciembre-2006
Mensajes: 173
Antigüedad: 17 años, 4 meses
Puntos: 2
Validacion de formulario.

Hola, he estado buscando pero no encuentro solucion para lo que quiero hacer.
Tengo un formulario con varios campos y en dos de esos campos uno se llama dias y otro personas, el problema es que cuando alguien selecciona el numero de dias quiero que le sea obligatorio seleccionar tambien el numero de personas, pero si no selecciona numero de dias entonces no es obligatorio seleccionar personas, no se si me he explicado bien. Porque hay gente que me selecciona el numero de personas y se olvida de seleccionar el numero de dias.

Entonces, hay algun codigo por aqui para decir que si el campo personas es seleccionado entonces es obligatorio seleccionar el campo dias, y si no es seleecionar el campo dias pues nada es obligatorio.

Muchas gracias de antemano!!
  #2 (permalink)  
Antiguo 21/02/2009, 12:45
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Validacion de formulario.

pudes poner algo como :

Código javascript:
Ver original
  1. dias = document.getElementById('dias');
  2. personas = document.getElementByID('personas');
  3. if(dias.length>0 && personas.length == 0){
  4. alert('Por favor indica el numero de personas');
  5. }

Tan solo cambia el .length por lo que quieras checar, en este caso checa unos campos de texto, si lo que tienes son radio buttons o listas o alguna otra cosa, lo mas problable es que tengas que checar po algo diferente de .length.
__________________
twitter: @imbuzu
  #3 (permalink)  
Antiguo 21/02/2009, 13:33
 
Fecha de Ingreso: diciembre-2006
Mensajes: 173
Antigüedad: 17 años, 4 meses
Puntos: 2
Respuesta: Validacion de formulario.

Muchas gracias buzzu,

los campos son listas despegables, me gustaria que saliera el mensaje en la misma pagina del formulario para no tener que volver a cagar la pagina, ya que tengo index.php que es el formulario y resultado.php que es el resultado del formulario.

Donde deberia de poner el javascript ese para que saliera el mensaje directamente en el index.php ??

Gracias!!
  #4 (permalink)  
Antiguo 21/02/2009, 17:31
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Validacion de formulario.

Hola, no te ofendas, pero se nota que no tienes ni idea de JS, pero bueno para eso estamos aquí, para aprender. Si tienes listas desplegables, etonces seguramente tienes varias <option> con un value diferente. Al primero, el que aprece seleccionado por default ponle value="noSelec" y despues compruevas que value no sea igual a noSelec:

Código javascript:
Ver original
  1. function checaForm(){
  2.    dias = document.getElementById('dias');
  3.    personas = document.getElementByID('personas');
  4.    if(dias.value!="noSelec" && personas.value == 'noSelec'){
  5.       alert('Por favor indica el numero de personas');
  6.       return false;
  7.    }
  8. }

Como ves eso está en una función llamada checaFrom, esa la pones en cabeza de tu sitio. Luego asignas la funcion al onsubmit del formulario.
__________________
twitter: @imbuzu
  #5 (permalink)  
Antiguo 22/02/2009, 03:44
 
Fecha de Ingreso: diciembre-2006
Mensajes: 173
Antigüedad: 17 años, 4 meses
Puntos: 2
Respuesta: Validacion de formulario.

Gracias buzzu,

la verdad es que no tengo idea de javascript, siempre he cogido los scripts ya pre-fabricados.

He hecho lo que me has dicho y en algun paso estoy fallando, te paso lo que puesto a ver si tu ves el fallo:

esto lo pongo al inicio de la pagina:

<script language='javascript'>
function checaForm(){
dias = document.getElementById('D24');
personas = document.getElementByID('C24');
if(dias.value!="noSelec" && personas.value == 'noSelec'){
alert('Por favor indica el numero de personas');
return false;
}
}
</script>

y en el formulario tengo lo siguiente:

<form onSubmit="javascript:checaForm()" id="formulario" method="post" name="formulario" action="resultado.php">

<select id="D24" name="dias">
<option value="noSelec" selected="selected">Cuantos dias?</option>

<select id="C24" name="personas">
<option value="noSelec" selected="selected">Cuantas personas?</option>


A ver si me puedes decir donde estoy fallando.

Gracias!!

Última edición por userman; 22/02/2009 a las 03:50
  #6 (permalink)  
Antiguo 22/02/2009, 13:53
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Validacion de formulario.

quita ese javascript: del onsubmit y pon la S en minuscula: onsubmit, no onSubmit, ademas ponle un id a tus elementos. Creo que ya te he dado todo lo que necesitas para resolver tu problema. Te sugiero que investigues bien y aprendas a programar, de otra manera siempre seras dependiente de otras personas.

Saludos

PD. No es necesario que me escribas un MP cada que escribes una respuesta, lo encuentro algo acosador.
__________________
twitter: @imbuzu
  #7 (permalink)  
Antiguo 22/02/2009, 15:11
 
Fecha de Ingreso: diciembre-2006
Mensajes: 173
Antigüedad: 17 años, 4 meses
Puntos: 2
Respuesta: Validacion de formulario.

He hecho todo lo que me comentas aunque me quedo la duda de ponerle un id a mis elementos y he hecho lo siguiente:

<select id="D24" name="dias">
<option value="noSelec" selected="selected" id="noSelec">Cuantos dias?</option>
<option value="1" id="1">1 Dia</option>
<option value="2" id="2">2 Dias</option>


el formulario lo he puesto asi:
<form onsubmit="checaForm()" id="formulario" method="post" name="formulario" action="resultado.php">

y de esta forma me sigue sin funcionar, he estado mirando otros codigos para sacar la solucionar, pero que no hay forma ehh sigo sin sacar la solucion, tendre la mente tan nublada que no veo la solucion o me estoy volviendo loco...
  #8 (permalink)  
Antiguo 22/02/2009, 15:59
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Validacion de formulario.

Hola:

Sobre formularios puedes encontrar info en este artículo: El abc de los formularios... Te falta la palabra mágica return en tu validación.
Creo que lo del id en los formularios no es tan importante, pero en un tag option la verdad es que no tiene ningún sentido.

Una versión simplificada de la validación sería:
<form onsubmit="dias.value != 'noSelec'"...

Aunque es en mi opinión poner un value="" para que no valide, ya que también es aconsejable no depender de javascript en validaciones por los que lo deshabilitan...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 22/02/2009, 16:09
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Validacion de formulario.

creo que mejor estudia primero algo de HTMl basico y luego hablamos...

Si te das cuenta tienes una funcion que dice getElementById(), se supone que esa funcion te toma el elemento con el id que le especificas. Por logico tus id deben ser los que estas especificando:

<select id="dias" name="dias">
<option value="noSelec" selected="selected">Cuantos dias?</option>
<option value="1" >1 Dia</option>
<option value="2">2 Dias</option>

Y lo mismo con el de personas. id="personas"

Espero que ahora si puedas solucionar el problema.
__________________
twitter: @imbuzu
  #10 (permalink)  
Antiguo 22/02/2009, 17:06
 
Fecha de Ingreso: diciembre-2006
Mensajes: 173
Antigüedad: 17 años, 4 meses
Puntos: 2
Respuesta: Validacion de formulario.

Gracias caricatos, le estoy echando un ojo, es batante completa la info de la pagina!!! y tienes razon con el return, ahora lo acabo de poner asi:

<form id="formulario" method="post" name="formulario" action="resultado.php" onSubmit="return checaForm();">

buzu ya lo soluccione!!! joer si q me costo..

buzu en el codigo que pasastes una linea estaba asi:
personas = document.getElementByID('personas');

y me fallaba el ID que estaba en mayuscula lo he puesto asi Id y ahora funciona..

muchas gracias por todo buzu!! aunque me ha costado sacarlo, he aprendido bastante con todo lo que he mirado e investigando, me has sido de gran ayuda.

Se agredece mucho.

Última edición por userman; 22/02/2009 a las 17:20 Razón: solucionado!!
  #11 (permalink)  
Antiguo 23/02/2009, 02:18
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Validacion de formulario.

pufff.... mi error. PEro por lo menos te ha servido para aprender a solucionar problemas jiji...
__________________
twitter: @imbuzu
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 04:53.