Foros del Web » Programando para Internet » Javascript »

Validar elementos obligatorios en formulario

Estas en el tema de Validar elementos obligatorios en formulario en el foro de Javascript en Foros del Web. Muy buenas a todos, espero que me podáis ayudar. Mi problema es que necesito validar un formulario para que determinados campos como nombre, dirección, teléfono, ...
  #1 (permalink)  
Antiguo 20/03/2010, 07:24
 
Fecha de Ingreso: marzo-2010
Mensajes: 10
Antigüedad: 14 años, 1 mes
Puntos: 0
Validar elementos obligatorios en formulario

Muy buenas a todos,

espero que me podáis ayudar.

Mi problema es que necesito validar un formulario para que determinados campos como nombre, dirección, teléfono, email y, sobre todo, la casilla de verificación de "acepto los términos y condiciones" sean obligatorios.

Tengo conocimientos de html y css, pero muy poco de javascript y por eso me está siendo muy difícil conseguir mi objetivo. El problema adicional es que tengo un Captcha en la página para evitar las decenas de spam que me llegaban cada día, y al tener diversos scripts en la página no soy capaz de hacer lo que me propongo.

Con Dreamweaver conseguí validar los campos de texto, pero no así el campo de verificación, en mi caso el más importante, y solo conseguí tener más scripts complicados (pues así me parecen los generados por Dreamweaver automáticamente) y no mi objetivo de validar la casilla de verificación.

Os dejo código html del formulario por si alguien me puede echar una mano:

<FORM NAME="miforma" ACTION="http://www.cerospam.com.ar/form.php" METHOD="post">
<p>
<INPUT NAME="subject" VALUE="Anmeldung" TYPE="hidden">
<INPUT NAME="redirect" VALUE="http://www.anda-sprachschule.de/es/gracias.html" TYPE="hidden">

Nombre y apellido:<BR>
<INPUT NAME="Name" SIZE="25" CLASS="rahmen" TYPE="text">
<BR>
<BR>
Género:<BR>
<INPUT NAME="Geschlecht" VALUE="hombre" TYPE="radio">
Hombre
<INPUT NAME="Geschlecht" VALUE="mujer" TYPE="radio">
Mujer<BR>
<BR>
Fecha de nacimiento:<BR>
<INPUT NAME="Name" SIZE="25" CLASS="rahmen" TYPE="text">
<BR>
Dirección:<BR>
<INPUT NAME="Adresse" SIZE="25" CLASS="rahmen" TYPE="text">
<BR>
Código postal, localidad:<BR>
<INPUT NAME="Plz, Ort" SIZE="25" CLASS="rahmen" TYPE="text">
<BR>
Teléfono:<BR>
<INPUT NAME="Telefon" SIZE="25" CLASS="rahmen" TYPE="text">
<BR>
Email:<BR>
<INPUT NAME="Email" SIZE="25" CLASS="rahmen" TYPE="text">
<BR>
Comentarios:<BR>
<TEXTAREA NAME="Kommentar" CLASS="rahmen">
</TEXTAREA>
<BR>
</p>
<p>
<input name="condiciones" type="checkbox" class="rahmen" id="condiciones" value="Si">
<strong>Acepto los <A HREF="condiciones.html">t&eacute;rminos y condiciones</A></strong></p>
<p> <BR>
Por favor introduzca el código:<BR>
<INPUT TYPE="text" SIZE="25" NAME="cerospam_code" VALUE="">
<BR>
<BR>
<SCRIPT TYPE="text/javascript">
<!--
cerospam_client = 706;
cerospam_form = 941;
cerospam_background = "1";
cerospam_width = 200;
//-->
</SCRIPT>
<SCRIPT TYPE="text/javascript" SRC="http://www.cerospam.com.ar/captcha.php">
</SCRIPT>
<BR>
<BR>
<INPUT VALUE="Enviar" CLASS="rahmen" TYPE="submit">
<INPUT VALUE="Borrar" CLASS="rahmen" TYPE="reset">
<BR>
<BR>
</p>
</FORM>

Muchas gracias de antemano y de todo corazón,

S.
  #2 (permalink)  
Antiguo 20/03/2010, 09:12
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Validar elementos obligatorios en formulario

Hola

Prueba así

Cita:
<FORM NAME="miforma" ACTION="http://www.cerospam.com.ar/form.php" METHOD="post" onsubmit="return validar_campos(this)";>
Código Javascript:
Ver original
  1. function validar_campos(a) {
  2. var oktermns = a.condiciones.checked == true;
  3. var okad= a.Adresse.value != "";
  4.  
  5.     if (!oktermns) {
  6.         alert ("Has de aceptar las Condiciones de Uso")
  7.         return (false);
  8.      }
  9.    
  10.  
  11.     if (!okad) {
  12.         alert ("Has de rellenar el campo");
  13.         return (false);
  14.     }
  15.  
  16. // siguiente validación
  17.  
  18.  
  19. else
  20.         return (true);
  21. }

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 20/03/2010, 10:46
 
Fecha de Ingreso: marzo-2010
Mensajes: 10
Antigüedad: 14 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Validar elementos obligatorios en formulario

Fantástico, muchas gracias, la validación de la casilla de verificación funciona perfectamente.

Ahora mi duda está en como validar con este script los campos de texto...

Si en el script:
{
var oktermns = a.condiciones.checked == true;
var okad= a.Adresse.value != "";

if (!oktermns) {
alert ("Por favor, acepte los términos y condiciones")
return (false);
}


if (!okad) {
alert ("Has de rellenar el campo");
return (false);
}

else
return (true);
}

a.condiciones.checked es para la casilla de verificación, ¿cómo funciona para los campos de texto?¿es exactamente igual o tengo que variar .checked?

¡Muchísimas gracias otra vez!
  #4 (permalink)  
Antiguo 20/03/2010, 10:51
 
Fecha de Ingreso: marzo-2010
Mensajes: 10
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Validar elementos obligatorios en formulario

Perdón, no me he explicado con claridad.

Ahora lo veo muy claro en la función.

La pregunta es si debo denominar a todas las variables okad:

function validar_campos(a) {
var oktermns = a.AGB.checked == true;
var okad= a.Name.value != "";
var okad= a.Adresse.value != "";
var okad= a.Plz, Ort.value != "";
var okad= a.Telefon.value != "";
var okad= a.Email.value != "";

o debo cambiar el nombre...

¡Muchas gracias!
  #5 (permalink)  
Antiguo 20/03/2010, 10:57
 
Fecha de Ingreso: marzo-2010
Mensajes: 10
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Validar elementos obligatorios en formulario

Yo lo he hecho así:

function validar_campos(a) {
var oktermns = a.AGB.checked == true;
var oknm= a.Name.value != "";
var okad= a.Adresse.value != "";
var okplz= a.Plz, Ort.value != "";
var oktlf= a.Telefon.value != "";
var okem= a.Email.value != "";


if (!oktermns) {
alert ("Por favor, acepte los términos y condiciones")
return (false);
}

if (!oknm) {
alert ("Debe completar el nombre");
return (false);

}
if (!okad) {
alert ("Debe completar la dirección");
return (false);
}

if (!okplz) {
alert ("Debe completar el código postal y la ciudad");
return (false);
}

if (!oktlf) {
alert ("Debe completar el teléfono");
return (false);
}

if (!okem) {
alert ("Debe completar el email");
return (false);
}

else
return (true);
}

Y no me ha funcionado. ¿Dónde está el error/los errores?

Como siempre, muchas gracias
  #6 (permalink)  
Antiguo 20/03/2010, 11:09
 
Fecha de Ingreso: marzo-2010
Mensajes: 10
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Validar elementos obligatorios en formulario

Ya lo he arreglado, el problema estaba en:

var okplz= a.Plz, Ort.value != "";

he cambiado el nombre del campo en el formulario y todo funciona.

Mil gracias, podemos dar el tema por cerrado!

Etiquetas: checkbox, validar, formulario
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 09:09.