Foros del Web » Programando para Internet » Javascript »

Problema Validacion JS

Estas en el tema de Problema Validacion JS en el foro de Javascript en Foros del Web. Hola que tal muchachos, primero que nada felicitarlos por este gran Foro, siempre habia consultado cosas como visitante pero nunca habia creado un post. La ...
  #1 (permalink)  
Antiguo 08/01/2013, 15:01
Avatar de LionRoots  
Fecha de Ingreso: enero-2013
Mensajes: 15
Antigüedad: 11 años, 3 meses
Puntos: 0
Pregunta Problema Validacion JS

Hola que tal muchachos, primero que nada felicitarlos por este gran Foro, siempre habia consultado cosas como visitante pero nunca habia creado un post.

La razon de este mensaje es porque tengo mi Web CSS, e hice un formulario de contacto con una validación Javascript, pero lo que me esta sucediendo es que no se valida, se envía directamente.

Aquí les dejo el código para que lo vean.

Formulario en mi web PHP
Código PHP:
 <!-- Formulario de contacto -->
<
form id="contact-form" action="contacto.php" method="post" onsubmit="return validar(this);" enctype="multipart/form-data">                    
<
fieldset>

<
label><span class="text-form">Name:</span><input id="name" name="name" type="text" /></label>
<
label><span class="text-form">Email:</span><input id="email" name="email" type="text" /></label>  
<
label><span class="text-form">Subject:</span><input id="subject" name="subject" type="text" /></label
<
div class="wrapper"><div class="text-form">Message:</div><textarea class="contact textarea" rows="8" cols="50" name="message" id="message"></textarea>
</
div>
<
div class="buttons">
                <
class="button-2" href="#" onClick="document.getElementById('contact-form').reset()">Clear</a>
                <
class="button-2" href="#" onClick="document.getElementById('contact-form').submit()">Send</a>            

                                    </
fieldset>                    
                                </
form>

<!-- 
Fin Formulario de contacto --> 

Contacto.php
Código PHP:
<?php
//Importamos las variables del formulario
foreach($_POST as $k => $v) {
    if(isset(${
$k})) unset(${$k});
    if(
in_array($k, array('name','email','subject','message')))
    ${
$k} = @get_magic_quotes_gpc() ? $v : @addslashes($v);
}
//Preparamos el mensaje de contacto
$cabeceras "From: $email\n" //La persona que envia el correo
 
"Reply-To: $email\n";
$asunto "$subject"// Asunto introducido por el que envia
$email_to "***"// Mi Email
$contenido "$name le ha enviado el siguiente mensaje:\n"
"\n"
"$message\n"
"\n";
//Enviamos el mensaje y comprobamos el resultado
if(@mail($email_to$asunto ,$contenido ,$cabeceras )) {
//Si el mensaje se envia muestra una confirmacion
die("Thank you, your message has been sent successfully. Please be patient, we answer you quickly.");
}else{
//Si el mensaje no se envia muestra el mensaje de error
die("Error: Your message cannot be sent. Try later and sorry for the inconvenience.");
}
?>

Validar.js
Código PHP:
//Funcion que verifica campos del formulario vacios
function Validar(f) {
if(
f.name.value=="") {
    
alert("Please write your full name");
    
f.name.focus();
    return 
false;
    }
if(
f.email.value=="") {
    
alert("Please write your email");
    
f.email.focus();
    return 
false;
    }
if(
f.subject.value=="") {
    
alert("Please write the subject of your message");
    
f.subject.focus();
    return 
false;
    }
if(
f.message.value=="") {
    
alert("Please write your message");
    
f.message.focus();
    return 
false;
    }

Lo que sucede al presionar el boton "Send" es que se envia directamente el formulario con los datos que esten completados sin pasar por la verificación del JS, no se en estoy fallando, intente poner dentro del "onClick" del boton "validar()" pero tampoco, no sucede nada.

Por ultimo aclaro que entre las etiquetas <head> no olvide colocar la siguiente linea.
Código PHP:
<!-- Archivo de validación-->
<
script type="text/javascript" src="validar.js"></script>
<!-- Fin Archivo de validación --> 
Espero que me puedan dar una mano, muchas gracias.
  #2 (permalink)  
Antiguo 08/01/2013, 16:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema Validacion JS

Validar no es lo mismo que validar, en la definición de la función debes poner también en minúsculas.

Te conviene usar un botón en lugar de un enlace para enviar el formulario
Código HTML:
Ver original
  1. <button type="submit">Send</button>
Si se trata de la apariencia solo tienes que modificarlo a tu gusto con CSS.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 08/01/2013, 17:02
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema Validacion JS

Javascript hace diferencias entre mayúsculas y minúsculas como PHP, por lo tanto como dice David Validar no es lo mismo que validar.

Código Javascript:
Ver original
  1. function Validar(f) {// V mayúscula


Código HTML:
Ver original
  1. onsubmit="return validar(this);"    v minúscula
  #4 (permalink)  
Antiguo 08/01/2013, 22:15
Avatar de LionRoots  
Fecha de Ingreso: enero-2013
Mensajes: 15
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Problema Validacion JS

Gracias por las respuestas, ya había corregido ese error y había puesto todo en minúsculas pero no hubo caso, no lo toma tampoco, asique coloque los botones y todo perfecto, pero todavía me quedara esta duda de porque al ser un enlace con la función de submit no toma la validación.

Etiquetas: formulario, funcion, input, js, 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 08:21.