Foros del Web » Programando para Internet » Javascript »

Validando...

Estas en el tema de Validando... en el foro de Javascript en Foros del Web. Buenas tardes, tengo un formulario el cual quiero validar, ya lo he hecho con otros formularios en otras webs con el mismo metodo, pero en ...
  #1 (permalink)  
Antiguo 19/01/2012, 12:22
 
Fecha de Ingreso: junio-2011
Mensajes: 478
Antigüedad: 12 años, 10 meses
Puntos: 13
Validando...

Buenas tardes, tengo un formulario el cual quiero validar, ya lo he hecho con otros formularios en otras webs con el mismo metodo, pero en este caso me esta fallando. Ya se que el tema ha sido hablado en otros hilos.
Cuando lo pruebo con todos los campos vacíos me devuelve el alert de Complete todos los campos, pero enseguida me aparece otro alert que dice: "nombre=&email=&fecha=&pais&mensaje=" y en el caso que complete todos los campos le doy en Enviar y no hace nada cuando debería llevarme a otro .html

Muchas gracias! Disculpen si me extendí, pero creo que es mejor explicar todo asi se entiende.
Les muestro lo que tengo:

Código:
function valida_envia(formulario){ 
   	//valido campos 
   	if (formulario.nombre.value.length==0 || formulario.email.value.length==0 || formulario.pais.value.length==0 ||
	 formulario.fecha.value.length==0 || formulario.mensaje.value.length==0){ 
      	 alert("Por favor, complete todos los campos.");
		 formulario.nombre.focus() 
      	 return false; 
   	} 
	return true;
}
Código HTML:
<form id="formulario" name="formulario" method="post" action="enviar.php"  onSubmit="return valida_envia(this);">
    <div id="inputs">
        <label for="nombre">Nombre:</label>
        <input name="nombre" type="text"/>
        <label for="mail">E-mail:</label>
        <input name="email" type="text"/>
        <label for="fecha">Cu&aacute;ndo vacaciona</label>
        <input name="fecha" type="text"/>
        <label for="pais">Pa&iacute;s de origen:</label>
        <select name="pais" id="country-selector" autocorrect="off" autocomplete="off">
            <option value="" selected="selected">Ingrese su pa&iacute;s</option>
            ACA TENGO UNA LISTA DE PAISES
        </select>
    </div>
    <div id="textareas">
        <label for="mensaje">Mensaje:</label>
        <textarea name="mensaje" rows="2"></textarea>
        <p class="submit">
            <input name="submit" type="submit" class="submit" id="boton" value="Enviar" title="Enviar"/>
        </p>
        <div id="comentario"><span>*Todos los campos son obligatorios</span></div>
    </div>    
</form> 
Código PHP:
<?php
$nombre 
$_POST['nombre'];
$mail $_POST['email'];
$pais $_POST['pais'];
$fecha $_POST['fecha'];
$comentario $_POST['mensaje'];

$header 'From: ' $email " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje "Nombre: " $nombre " \r\n";
$mensaje .= "E-mail: " $mail " \r\n";
$mensaje .="Pais: " $pais " \r\n";
$mensaje .="Fecha: " $fecha " \r\n";
$mensaje .= "Mensaje: " $comentario " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para 'MAIL';
$asunto 'ASUNTO';

mail($para$asuntoutf8_decode($mensaje), $header);

$direccion "gracias.html?ref=" rawurlencode($nombre);

echo 
header('Location:'.$direccion);
?>
  #2 (permalink)  
Antiguo 19/01/2012, 12:43
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Validando...

bueno se me ocurre que le pongas el else:

function valida_envia(formulario){
//valido campos
if (formulario.nombre.value.length==0 || formulario.email.value.length==0 || formulario.pais.value.length==0 ||
formulario.fecha.value.length==0 || formulario.mensaje.value.length==0){
alert("Por favor, complete todos los campos.");
formulario.nombre.focus()
return false;
} else {
return true;
}}

y también que les pongas id a los input:
<input name="nombre" id="nombre"...


a ver si va
  #3 (permalink)  
Antiguo 19/01/2012, 13:00
 
Fecha de Ingreso: junio-2011
Mensajes: 478
Antigüedad: 12 años, 10 meses
Puntos: 13
Respuesta: Validando...

Gracias por contestar tan rápido!
Probé lo que me sugieres pero sigue igual, gracias de todos modos!
  #4 (permalink)  
Antiguo 19/01/2012, 13:34
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Validando...

Código:
function valida_envia(){ 
   	//valido campos 
   	if (document.formulario.nombre.value.length==0 || document.formulario.email.value.length==0 || document.formulario.pais.value.length==0 ||
	 document.formulario.fecha.value.length==0 || document.formulario.mensaje.value.length==0){ 
      	 alert("Por favor, complete todos los campos.");
		document.formulario.nombre.focus() 
      	return 0;
   	} 
	document.formulario.submit();
}
no está probado puede tener algún fallo.

A ver si va asi
  #5 (permalink)  
Antiguo 19/01/2012, 18:07
 
Fecha de Ingreso: junio-2011
Mensajes: 478
Antigüedad: 12 años, 10 meses
Puntos: 13
Respuesta: Validando...

Muchas gracias por todas sus respuestas, ya pude solucionarlo, tenia un conflicto con otro script.

Etiquetas: formulario, html, input, php, botones
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 05:39.