Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Validar campos en formulario

Estas en el tema de Validar campos en formulario en el foro de Javascript en Foros del Web. Buenas Tengo un formulario en HTML, con función PHP, necesito que cuando le doy al botón enviar verifique los campos y en caso de no ...
  #1 (permalink)  
Antiguo 14/01/2014, 09:41
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 15 años, 10 meses
Puntos: 0
Validar campos en formulario

Buenas

Tengo un formulario en HTML, con función PHP, necesito que cuando le doy al botón enviar verifique los campos y en caso de no estar relleno que muestre un mensaje diciendo: El campo "nombre" necesita rellenarse. El código que tengo es:

HTML:

<script>
function revisar() {
if(formulario.nombre == "") { alert('Rellene el nombre') ; return false ; }
if(formulario.poblacion == "") { alert('Rellene la población') ; return false ; }
if(formulario.email == "") { alert('Debes indicar un e-mail') ; return false ; }
if(formulario.telefono == "") { alert('Rellene un teléfono de contacto') ; return false ; }

}
</script>

<td width="439" valign="top"><form method="post" name="contact" enctype="multipart/form-data" action="mailform.php">
<table width="437" border="0">
<tr>
<td>
<label for="author">Nombre:</label>

</td>
<td colspan="2"><input name="nombre" type="text" id="nombre" value="" size="30" />
*</td>
</tr>
<tr>
<td>
<label for="author">Dirección:</label>
</td>
<td colspan="2"><input name="direccion" type="text" id="direccion" value="" size="40" /></td>
</tr>
<tr>
<td>
<label for="author2">Población:</label>
</td>
<td colspan="2"><input name="poblacion" type="text" id="poblacion" value="" size="30" />
*</td>
</tr>
<tr>
<td>
<label for="author">Email:</label>
</td>
<td colspan="2"><input name="email" type="text" id="email" value="" size="30" />
*</td>
<tr>
<td><label for="author3">Teléfono:</label>
</td>
<td colspan="2"><input name="telefono" type="text" id="telefono" value="" size="15" />
*</td>
</tr>

<tr>
<td><label for="author4">Asunto:</label>
</td>
<td colspan="2"><input name="asunto" type="text" id="asunto" value="" size="30" /></td>
</tr>
<tr>
<td colspan="3">
<label for="text2">Mensaje:</label></td>
</tr>
<tr>
<td colspan="3">
<textarea id="mensaje" name="mensaje" rows="9" cols="45" class="required"></textarea>
</td>
</tr>
<tr>
<td colspan="3">Adjunte su logotipo en formato JPG que no pese más de 1 MB</td>
</tr>
<tr>
<td colspan="3"><p>
<input type="file" name="archivo"/>
</p></td>
</tr>
<tr>
<td colspan="3" align="center">DATOS DE INTERÉS PARA REALIZAR PRESUPUESTOS</td>
</tr>
<tr>
<td><label for="diseno">Diseño:</label>
</td>
<td colspan="2"><input name="diseno" type="text" id="diseno" value="Adjuntar logo" size="40" /></td>
</tr>
<tr>
<td><label for="soporte">Soporte:</label>
</td>
<td colspan="2"><input name="soporte" type="text" id="soporte" value="Camisetas, polos, sudaderas, etc." size="40" /></td>
</tr>
<tr>
<td><label for="donde">Dónde se coloca:</label>
</td>
<td colspan="2"><input name="donde" type="text" id="donde" value="Pecho, espalda, frente, etc." size="40" /></td>
</tr>
<tr>
<td><label for="cantidad">Cantidad aprox.:</label></td>
<td colspan="2"><input name="cantidad" type="text" id="cantidad" size="40" /></td>
</tr>

<tr>
<td width="99">
<input type="submit" value="Enviar" id="enviar" name="enviar" class="submit_btn float_l" onsubmit="return revisar()"/></td>
<td width="142">2</td>
<td width="182" align="left"><input type="reset" value="Borrar" id="reset" name="reset" class="submit_btn float_r" /></td>
</tr>
<tr>
<td colspan="3" align="center"><strong><em>* Campos Obligatorios</em></strong></td>
</tr>
</table>
</form></td>

En el PHP no tengo nada que tenga que ver con este tema

Espero vuestra respuesta y gracias...
  #2 (permalink)  
Antiguo 14/01/2014, 09:45
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: Validar campos en formulario

Hola:

En principio el evento se debe asociar al formulario (tag form), y no al botón...

Saludos :arriba.
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 14/01/2014, 11:12
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Validar campos en formulario

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

En principio el evento se debe asociar al formulario (tag form), y no al botón...

Saludos :arriba.
Hola,

ya lo he modificado y sigue sin salir ningún mensaje que me indique que debo rellenar esos campos...!

<script>
function revisar() {
if (nombre == "") { alert("Rellene el nombre") ; return false ; }
if (poblacion == "") { alert('Rellene la población') ; return false ; }
if (email == "") { alert('Debes indicar un e-mail') ; return false ; }
if (telefono == "") { alert('Rellene un teléfono de contacto') ; return false ; }
}
</script>


<td width="439" valign="top"><form method="post" onsubmit="revisar()" name="contact" enctype="multipart/form-data" action="mailform.php">
<table width="437" border="0">
<tr>
<td>
<label for="author">Nombre:</label>

</td>
<td colspan="2"><input name="nombre" type="text" id="nombre" value="" size="30" />
*</td>
</tr>
<tr>
<td>
<label for="author">Dirección:</label>
</td>
<td colspan="2"><input name="direccion" type="text" id="direccion" value="" size="40" /></td>
</tr>

a ver si me puede echar una mano...gracias
  #4 (permalink)  
Antiguo 14/01/2014, 11:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar campos en formulario

Hazle caso a caricatos:

Código Javascript:
Ver original
  1. var formulario = document.contact, //Tomo el formulario
  2.     cantidad = formulario.elements.length, //Obtengo la cantidad de elementos
  3.     valido = true; //Comodín para saber si todos los campos están completos
  4.  
  5. //Añado al formulario el evento "submit" que es el que se ejecuta cuando lo enviamos
  6. formulario.addEventListener("submit", function(eventoSubmit){
  7.     eventoSubmit.preventDefault(); //Evito que se envíe el formulario sin validar
  8.  
  9.     //Recorro el formulario en búsqueda de campos incompletos
  10.     for (i = 0; i < cantidad; i++){
  11.         //Si el campo es incompleto
  12.         if (!formulario.elements[i].value.length){
  13.             //Lanzo una alerta
  14.             alert("Ingrese datos en el campo '" + formulario.elements[i].id + "'");
  15.  
  16.             //Le doy el enfoque a dicho elemento
  17.             formulario.elements[i].focus();
  18.  
  19.             //El comodín cambia su valor a "false" para no enviar el formulario
  20.             valido = false;
  21.  
  22.             //Salgo del bucle For
  23.             break;
  24.         }
  25.     }
  26.  
  27.     if (valido) //Si mi comodín sigue como "true" (si todos los campos tienen datos)
  28.         formulario.submit(); //Lo envío para su procesamiento
  29. }, false);

La explicación te la detallé en los comentarios que añadí, saludos.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 14/01/2014, 11:43
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Validar campos en formulario

Cita:
Iniciado por Alexis88 Ver Mensaje
Hazle caso a caricatos:

Código Javascript:
Ver original
  1. var formulario = document.contact, //Tomo el formulario
  2.     cantidad = formulario.elements.length, //Obtengo la cantidad de elementos
  3.     valido = true; //Comodín para saber si todos los campos están completos
  4.  
  5. //Añado al formulario el evento "submit" que es el que se ejecuta cuando lo enviamos
  6. formulario.addEventListener("submit", function(eventoSubmit){
  7.     eventoSubmit.preventDefault(); //Evito que se envíe el formulario sin validar
  8.  
  9.     //Recorro el formulario en búsqueda de campos incompletos
  10.     for (i = 0; i < cantidad; i++){
  11.         //Si el campo es incompleto
  12.         if (!formulario.elements[i].value.length){
  13.             //Lanzo una alerta
  14.             alert("Ingrese datos en el campo '" + formulario.elements[i].id + "'");
  15.  
  16.             //Le doy el enfoque a dicho elemento
  17.             formulario.elements[i].focus();
  18.  
  19.             //El comodín cambia su valor a "false" para no enviar el formulario
  20.             valido = false;
  21.  
  22.             //Salgo del bucle For
  23.             break;
  24.         }
  25.     }
  26.  
  27.     if (valido) //Si mi comodín sigue como "true" (si todos los campos tienen datos)
  28.         formulario.submit(); //Lo envío para su procesamiento
  29. }, false);

La explicación te la detallé en los comentarios que añadí, saludos.


-----
Hola entonces que debo poner en el script:

<script>
function revisar() {
var formulario = document.contact, //Tomo el formulario
cantidad = formulario.elements.length, //Obtengo la cantidad de elementos
valido = true; //Comodín para saber si todos los campos están completos

//Añado al formulario el evento "submit" que es el que se ejecuta cuando lo enviamos
formulario.addEventListener("submit", function(eventoSubmit){
eventoSubmit.preventDefault(); //Evito que se envíe el formulario sin validar

//Recorro el formulario en búsqueda de campos incompletos
for (i = 0; i < cantidad; i++){
//Si el campo es incompleto
if (!formulario.elements[i].value.length){
//Lanzo una alerta
alert("Ingrese datos en el campo '" + formulario.elements[i].id + "'");

//Le doy el enfoque a dicho elemento
formulario.elements[i].focus();

//El comodín cambia su valor a "false" para no enviar el formulario
valido = false;

//Salgo del bucle For
break;
}
}

if (valido) //Si mi comodín sigue con el valor "true" (si todos los campos tienen datos)
formulario.submit(); //Lo envío para su procesamiento
}, false);
}
</script>

Y luego en la etiqueta <form>
<form method="post" onsubmit="revisar()" name="contact" enctype="multipart/form-data" action="mailform.php">
GRACIAS DE ANTEMANO!!!!
  #6 (permalink)  
Antiguo 14/01/2014, 11:57
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar campos en formulario

Olvídate de la función revisar(), coloca directamente ese código tal y como lo puse, además, quita el onsubmit="revisar()" de la etiqueta form. Analiza el código que te pasé, para eso le puse comentarios, no te limites a copiarlo y pegarlo.

Por favor, utiliza el highlight respectivo para mostrar código.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 16/01/2014, 16:31
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Validar campos en formulario

Código HTML:
Ver original
  1. <script language="JavaScript">
  2.  function formulariodecontacto(){  
  3.   if (document.formulario.nombre.value==""){
  4.    alert("Por favor ingresa tu Nombre.");
  5.    document.formulario.nombre.select();
  6.    return false;
  7.   }
  8.    if (document.formulario.poblacion.value==""){
  9.    alert("Por favor indique su dirección.");
  10.    document.formulario.poblacion.select();
  11.    return false;
  12.   }
  13.    if (document.formulario.email.value==""){
  14.    alert("Por favor rellene el correo electrónico.");
  15.    document.formulario.email.select();
  16.    return false;
  17.   }
  18.    if (document.formulario.telefono.value==""){
  19.    alert("Por favor ingresa su teléfono de contacto.");
  20.    document.formulario.telefono.select();
  21.    return false;
  22.   }
  23.   return true;
  24.  }
  25.  
  26.                                        
  27.             <td width="439" valign="top"><form method="post" name="formulario" enctype="multipart/form-data" action="mailform.php" onSubmit="return formulariodecontacto()">

Realmente lo he solucionado de esta forma...lo dejo para que otro le de uso...muchas gracias de todas formas por vuestro tiempo
  #8 (permalink)  
Antiguo 16/01/2014, 21:02
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar campos en formulario

Es una forma válida, aunque muy poco adaptable para otros formularios, pues si tengo más o menos campos, tendré que añadir o quitar líneas de código. La forma que te propuse, se adapta casi a cualquier formulario, pero en fin.

Acostúmbrate a manejar los eventos desde JS, ya no se recomienda hacerlo mediante los atributos de los elementos.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: campos, formulario, html, input, php
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 12:41.