Regresar a la página ComoCrearTuWeb.com
Resultados 1 al 9 de 9

Tema: problemilla con submit

  1. #1
    Me va gustando esto... Habitante Avatar de ocbarrio
    Fecha de Ingreso
    12 sep, 11
    Mensajes
    199
    Poder de Reputación
    15

    problemilla con submit

    Hola! tengo un problemilla con el submit. Quiero que no haga submit hasta que no esten completos los 4 campos, pero aunque el script de validacion funciona (aparece el mensaje "falta campo x") envia el formulario igualmente al aceptar (aceptar el mensaje "falta campo x").

    CODIGO HTML

    <div id="container">

    <form id="form1" class="wufoo" action="../enviar.php" method="post" name="formulario">

    <div class="info">
    <h2>Contacto</h2>
    </div>

    <ul>

    <li>
    <label class="desc" > Nombre:<span class="req">*</span></label>
    <div>
    <input class="field text large" name="nombre" type="text" id="nombre" maxlength="255" />
    </div>
    </li>

    <li>
    <label class="desc">E-mail:<span class="req">*</span></label>
    <div>
    <input class="field text large" name="email" id="email" type="text" maxlength="255"/>
    </div>
    </li>

    <li>
    <label class="desc">Asunto:<span class="req">*</span></label>
    <div>
    <input class="field text large" name="asunto" id="asunto" type="text" maxlength="255"/>
    </div>
    </li>

    <li>
    <label class="desc">Mensaje:<span class="req">*</span></label>
    <div>
    <textarea rows="10" cols="50" class="field textarea medium" name="mensaje" id="mensaje"></textarea>
    </div>
    </li>

    <li class="buttons">
    <input name="button" type="submit" class="btTxt" id="saveForm" value="Enviar" onclick="valida_envia()"/>
    </li>
    </ul>

    </form>



    <script language="JavaScript" type="text/JavaScript">

    function valida_envia(){
    if(document.formulario.nombre.value == "") {
    alert("Escriba su nombre");
    document.formulario.nombre.focus();
    return 0;
    }

    if(document.formulario.email.value == "") {
    alert("Escriba su EMail");
    document.formulario.email.focus();
    return 0;
    }


    if(document.formulario.asunto.value == "") {
    alert("Escriba el asunto");
    document.formulario.asunto.focus();
    return 0;
    }

    if(document.formulario.mensaje.value == "") {
    alert("Escriba el mensaje");
    document.formulario.mensaje.focus();
    return 0;
    }

    if(document.formulario.nombre.focus().false) {document.formulario.submit();}

    if(document.formulario.email.focus().false) {document.formulario.submit();}

    if(document.formulario.asunto.focus().false) {document.formulario.submit();}

    if(document.formulario.mensaje.focus().false) {document.formulario.submit();}



    return true
    ;
    }
    </script>
    Lo que esta en rojo son pruebas que e ido haciendo viendo el codigo (no tengo ni idea de php ni js). Antes de "return true" iba esto: "document.formulario.submit();"

    CODIGO PHP


    ....
    <script languaje="JavaScript">
    function redireccionar() {
    setTimeout("location.href='index.html?id=tw_redire ccion'", 5000);
    }
    </SCRIPT>
    </head>

    <body onload="redireccionar()">
    ....
    <?php
    $mail='info@fotografiaolivier.com';
    $nombre = $_POST['nombre'];
    $email = $_POST['email'];
    $asunto = $_POST['asunto'];
    $mensaje = $_POST['mensaje'];

    $nombre = strip_tags ($nombre);
    $email = strip_tags ($email);
    $asunto = strip_tags ($asunto);
    $mensaje = strip_tags ($mensaje);

    $message = "
    Nombre: ".$nombre."
    E-mail: ".$email."
    Asunto: ".$asunto."
    Mensaje: ".$mensaje."";

    if (mail($mail,"Fotografía Olivier",$message ,"From: $email"));

    echo "Gracias, se ha enviado correctamente.
    Si no se carga la página principal en 5 seg. pulse sobre la imagen para volver.";

    ?>
    MUCHAS GRACIAS!
    Última edición por ocbarrio; 14/09/2012 a las 12:48
    Fotografía y Vídeo Profesional
    www.fotografiaolivier.com

    Productora de Video en Valencia
    www.voorfilms.es/galeria/galeria.html

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,046
    Poder de Reputación
    26
    Hola:

    Incluye jQuery (para facilitar el trabajo). Escribe esto dentro del <head></head>:

    Código:
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script type="text/javascript">
      jQuery(document).ready(function($) {
        $('#form1').submit(e) {
          e.preventDefault();
          
          if(valida_envia($) == 1)
            $(this).submit();
        }
      });
    
    function valida_envia($){
    	if($('#nombre').val() == "") {
    		alert("Escriba su nombre");
    		$('#form1 #nombre').focus();
    		
    		return 0;
    	}
    
    	if($('#email').val() == "") {
    		alert("Escriba su EMail");
    		$('#form1 #email').focus();
    		
    		return 0;
    	}
    
    
    	if($('#asunto').val() == "") {
    		alert("Escriba el asunto");
    		$('#form1 #asunto').focus();
    		
    		return 0;
    	}
    
    	if($('#mensaje').val() == "") {
    		alert("Escriba el mensaje");
    		$('#form1 #mensaje').focus();
    		
    		return 0;
    	}
    
            return 1;
    }</script>
    Eso es todo. Ya no necesitas el código anterior. No lo he probado, así que si no funciona me avisas.

  3. #3
    Me va gustando esto... Habitante Avatar de ocbarrio
    Fecha de Ingreso
    12 sep, 11
    Mensajes
    199
    Poder de Reputación
    15
    Hola y muchas gracias!

    Me da un error de sintaxis en la linea:

    $('#form1').submit(e) {

    Aparte de eso lo he probado y hace exactamente igual, envia el formulario aunque hayan campos vacios (eso si, antes de enviar me avisa del campo vacio).

    He quitado todo el codigo js de antes, y he colocado el tuyo. Que puñeta esto del JS, o te pones las pilas o no pillas nada.

    Muchisimas gracias!
    Fotografía y Vídeo Profesional
    www.fotografiaolivier.com

    Productora de Video en Valencia
    www.voorfilms.es/galeria/galeria.html

  4. #4
    Moderador CCTW Habitante Avatar de Yaneth
    Fecha de Ingreso
    27 abr, 07
    Ubicación
    Mèxico
    Mensajes
    10,344
    Poder de Reputación
    72
    Hola, tienes esto:

    <input name="button" type="submit" class="btTxt" id="saveForm" value="Enviar" onclick="valida_envia()"/>

    cambialo por esto:

    <input type="button" value="Enviar" onclick="valida_envia()" />

    Lo que hice fué, quitar el boton submit que es el que envia el formulario
    de esa forma, ese boton ya no funciona, lo que hace es que, al darle enviar
    manda los datos al script, y una vez estén todos los campos completos,
    el mismo escritp tiene el submit (enviar)


    if(document.frm.email.value == "") {
    alert("Por favor indica un Mensaje");
    document.frm.email2.focus();
    return 0;
    }

    alert("Muchas gracias por enviar el formulario");
    document.frm.submit();
    return true;
    }
    </script>
    saludos
    Última edición por Yaneth; 14/09/2012 a las 18:57
    ______________________________________

    reparacion de rines


    _____________________________________

  5. #5
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,046
    Poder de Reputación
    26
    Claro que te da error, pues me equivoqué XD. Lo siento. El código correcto es este:

    Código:
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script type="text/javascript">
      jQuery(document).ready(function($) {
        $('#form1').submit(function(e) {
          e.preventDefault();
          
          if(valida_envia($) == 1)
            $(this).submit();
        });
      });
    
    function valida_envia($){
    	if($('#nombre').val() == "") {
    		alert("Escriba su nombre");
    		$('#form1 #nombre').focus();
    		
    		return 0;
    	}
    
    	if($('#email').val() == "") {
    		alert("Escriba su EMail");
    		$('#form1 #email').focus();
    		
    		return 0;
    	}
    
    
    	if($('#asunto').val() == "") {
    		alert("Escriba el asunto");
    		$('#form1 #asunto').focus();
    		
    		return 0;
    	}
    
    	if($('#mensaje').val() == "") {
    		alert("Escriba el mensaje");
    		$('#form1 #mensaje').focus();
    		
    		return 0;
    	}
    
            return 1;
    }</script>

  6. #6
    Me va gustando esto... Habitante Avatar de ocbarrio
    Fecha de Ingreso
    12 sep, 11
    Mensajes
    199
    Poder de Reputación
    15
    Hola skaparate!

    Ante todo un gracias enorme!

    Por fin funciona, aunque ahora tengo el problema que el boton "enviar" se queda en gris oscuro (no se puede apretar despues de introducir el campo que falta.

    Alguna idea?
    Fotografía y Vídeo Profesional
    www.fotografiaolivier.com

    Productora de Video en Valencia
    www.voorfilms.es/galeria/galeria.html

  7. #7
    Me va gustando esto... Habitante Avatar de ocbarrio
    Fecha de Ingreso
    12 sep, 11
    Mensajes
    199
    Poder de Reputación
    15
    Hola Yaneth!

    Que grande eres! Por fin funciona exactamente como queria. Que sepas que el resto del codigo es tuyo tambien, de otro post.

    Muchisimas gracias a los 2 por vuestra ayuda!

    Un saludo!

    P.D. Si necesitais saber algo de photoshop, premiere, after effects o 3d studio max, por favor hacermelo saber y os ayudare encantado.
    Fotografía y Vídeo Profesional
    www.fotografiaolivier.com

    Productora de Video en Valencia
    www.voorfilms.es/galeria/galeria.html

  8. #8
    Moderador CCTW Habitante Avatar de Yaneth
    Fecha de Ingreso
    27 abr, 07
    Ubicación
    Mèxico
    Mensajes
    10,344
    Poder de Reputación
    72
    hola ocbarrio. me alegra que lo hayas solucionado
    yy, el codigo no es mio, lo que hice fuè tomar varios de la red y adaptarlo a mi gusto jeje

    y gracias por tu ofrecimiento, lo tendrè en cuena

    saludos y suerte!!
    ______________________________________

    reparacion de rines


    _____________________________________

  9. #9
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,046
    Poder de Reputación
    26
    Lo mismo digo, gracias por la oferta :D.

Temas Similares

  1. Botones: Submit y Reset no funcionan
    Por Rabs en el foro Formularios
    Respuestas: 5
    Último Mensaje: 18/09/2011, 19:44
  2. imagen para valor submit
    Por Renato en el foro Foro General
    Respuestas: 4
    Último Mensaje: 19/12/2010, 23:35

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •