Foros del Web » Programando para Internet » Javascript »

¿utilizar onSubmit o onclick?

Estas en el tema de ¿utilizar onSubmit o onclick? en el foro de Javascript en Foros del Web. Hola a tod@s! Después de tiempo siendo solo maquetadora web, ahora estoy empezando a estudiar javascript y tengo varios interrogantes que no se como resolver. ...
  #1 (permalink)  
Antiguo 11/05/2014, 15:41
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 47
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta ¿utilizar onSubmit o onclick?

Hola a tod@s!

Después de tiempo siendo solo maquetadora web, ahora estoy empezando a estudiar javascript y tengo varios interrogantes que no se como resolver. Tengo dudas con algo sencillo que estoy aplicando (más bien intentando aplicar) a mi página web (aun en proceso), por eso estaré muy agradecida quien pueda ayudarme a entender que hago mal...

He montado un pequeño formulario de contacto para mi página web, y he creado un mini script que debe ejecutarse cuando se hayan rellenado correctamente los campos del formulario (no antes) y se presione el botón de submit.


Código:
  

    <script>
    function message() { 
    document.getElementById("demo").innerHTML = "Hemos recibido tu mensaje correctamente.<br />En breve nos pondremos en contacto contigo";
}
    </script>
...
      
<form action="#" id="consultanos" autocomplete="on" method="post" target="_self" onSubmit="message">
        <label>nombre *</label><br />
        <input type="text" class="datos" required /><br />
        
        <label>apellidos *</label><br />
        <input type="text" class="datos" required /><br />
               
        <label>población</label><br />
        <input type="text" class="datos" /><br />
        
        <label>email *</label><br />
        <input type="email" class="datos" required /><br />
        
        <label>asunto</label><br />
        <input type="text" class="datos" /><br />
        
        <label>consulta *</label><br />
        <textarea id="cuerpo" required ></textarea>
        <br />
        <br />
	<input type="submit" id="botonenvio" value="enviar">
        <p id="demo"></p>
        </form>

Con el evento onSubmit, el texto del evento no se muestra al presionar el botón (se recarga la página... y eso es algo que no quiero). Si lo hago onClick y lo coloco dentro del submit si que sale el texto, pero no el momento que me gustaría (cuando el formulario esté correcto y se pueda enviar).

¿Cómo puedo hacer que el texto ("Hemos recibido tu mensaje correctamente...") se muestre solo cuando los campos estén rellenados correctamente y se pulse el botón de envío?

Mil gracias de antemano a quien dedique unos minutos a esta causa.
  #2 (permalink)  
Antiguo 11/05/2014, 17:03
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: ¿utilizar onSubmit o onclick?

Hola:

Tal como tienes el código, no llamas a nada, porque falta el juego de paréntesis... cuando lo arregles y lo pruebes, seguimos...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 11/05/2014, 17:06
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
Respuesta: ¿utilizar onSubmit o onclick?

Primero que todo te felicito por ser maquetadora.... CSS ha sido para mi siempre un imposible... lo odio profundamente jejeje

Segundo, SI se muestra el mensaje que tu quieres lo que pasa es que lo hace e inmediatamente (cuestion de milisegundos) se produce la redireccion con el envio de los datos a la pagina que tu especificas en action="..." y por eso no ves nada :)

Fijate que para eso normalmente se usa alert()

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script language="JavaScript">
  4.  
  5.     function message(){
  6.         document.getElementById("demo").innerHTML = "Hemos recibido tu mensaje correctamente.<br />En breve nos pondremos en contacto contigo";
  7.         alert("Tu formulario ha sido enviado!");
  8.     }      
  9.    
  10. </script>      
  11. </head>
  12. <body>
  13. <form action="#" id="consultanos" autocomplete="on" method="post" target="_self" onSubmit="message">
  14.         <label>nombre *</label><br />
  15.         <input type="text" class="datos" required /><br />        
  16.         <label>apellidos *</label><br />
  17.         <input type="text" class="datos" required /><br />
  18.                
  19.         <label>población</label><br />
  20.         <input type="text" class="datos" /><br />
  21.        
  22.         <label>email *</label><br />
  23.         <input type="email" class="datos" required /><br />
  24.        
  25.         <label>asunto</label><br />
  26.         <input type="text" class="datos" /><br />
  27.        
  28.         <label>consulta *</label><br />
  29.         <textarea id="cuerpo" required ></textarea>
  30.         <br />
  31.         <br />     
  32.     <input type="submit" id="botonenvio" value="enviar" onclick="message();">
  33.         <p id="demo"></p>
  34.        
  35. </body>
  36. </html>

Prueba y veras
__________________
Salu2!
  #4 (permalink)  
Antiguo 12/05/2014, 02:17
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 47
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: ¿utilizar onSubmit o onclick?

Hola caricatos!

Una de mis abuelas era de Torremolinos!! (paisano!)

Bueno, dejando eso a un lado, gracias por responderme. De paso te pregunto, ¿Para lo que pretendo hacer es necesario que haya una función? ¿Cual podría venirme bien? Perdona mi ingenuidad va en relación con mi ignorancia sobre el tema ^_^'


Saludos!
  #5 (permalink)  
Antiguo 12/05/2014, 02:35
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 47
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: ¿utilizar onSubmit o onclick?

Hola Italico76,

Antes que nada, gracias por tu ayuda, y si algún día necesitas resolver algo sobre CSS no dudes en preguntarme :)

Alert no me encaja (por cuestiones de diseño, esas cuestiones horribles que a veces te amargan la existencia...jeje), de ahí que quiera que se muestre el mensaje en la parte inferior al lado del submit. ¿Quizá lo que ofusca mi propósito sea la acción de envío? O quizá la solución es que la acción cargue la misma página con el mensaje fijo y me deje de javascript?

Bueno, de nuevo gracias.

Un saludo!
  #6 (permalink)  
Antiguo 12/05/2014, 06:04
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
Respuesta: ¿utilizar onSubmit o onclick?

Cita:
Iniciado por al_limon Ver Mensaje
¿Quizá lo que ofusca mi propósito sea la acción de envío? O quizá la solución es que la acción cargue la misma página con el mensaje fijo y me deje de javascript?
Hola, hablemos de "usabilidad" :)


Claro que puedes usar "Ajax" o en la práctica Ajaj (lo que es basicamente JavaScript + JSON + lenguaje del lado del servidor como PHP o ASP.NET o Java, etc) y con eso logras el efecto de enviar datos sin moverte de la pagina (sin recargar)

Pero ya sea recargando la pagina del formulario o enviando con "Ajax" me parece que no es buena idea dejar al usuario en la pagina del formulario luego de enviarlo exitosamente porque usualmente al enviar un formulario tu sacas de ahi al usuario (y la "usabilidad" se da porque el sitio tiene un comportamiento "predecible")

(Ajax se utiliza solo para mostrar errores en el formulario haciendo validaciones del lado del servidor (PHP / JAVA / ASP.NET / PYTHON / PERL /etc), validaciones que no podrias hacer en Javascript como por ejemplo si ese nombre de usuario o contraseña ya estan registrados o bien para realizar algun proceso tambien donde necesites algo que no encuentres del lado del cliente. Lo que NO harias es enviar el formulario y en caso de exito quedarte en esa pagina si el resultado es exitoso excepto sea un formulario especial para ingresar en forma secuencial N-cantidad de productos en una base de datos, por ejemplo)


Mas bien creo, deberias enviarlo a una pagina distinta (como un dashboard o el index) especificada en action="pagina.php" donde muestras ese mensaje que quieres ;)

formulario --> dashboard ó el index
__________________
Salu2!

Última edición por Italico76; 12/05/2014 a las 07:41

Etiquetas: dudas, eventos, formulario, onclick, onsubmit
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:09.