Foros del Web » Programando para Internet » Javascript » Frameworks JS »

problema con return

Estas en el tema de problema con return en el foro de Frameworks JS en Foros del Web. Hola, Resuslta que tengo un formulario, y quiero que solo se envie si el correo No existe en la base de datos, en mi js ...
  #1 (permalink)  
Antiguo 12/04/2010, 09:06
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 18 años, 9 meses
Puntos: 3
problema con return

Hola, Resuslta que tengo un formulario, y quiero que solo se envie si el correo No existe en la base de datos, en mi js tengo el sigiente correo :


function existeCorreo(){
var mode = 'city';
var pais = $('#correo').val();

$.post("inc/user/control/correo.php",{ correo:correo },function(data){
if( data == "existe");
return false;

)
}

<form action="" onsubmit="existeCorreo()">...............



pero la sorpresa que me llevo es que aunque el correo.php me reporta que el correo existe, el evento de java script no me retorna FALSE.


que puedo hacer hay.
__________________
No hay nada que foros del web no sepa!!!!

Peca tanto quien presume de su belleza como de su inteligencia, ya que la brevedad de la vida aunque distorcionada siempre estara presente.
  #2 (permalink)  
Antiguo 12/04/2010, 09:48
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: problema con return

es que el evento onsubmit tiene que tener un "return false" pero en una función haciendo un "return false" lo que devuelve es un "false", o sea que estás devolviendo sólo "false"

devería ser

Código Javascript:
Ver original
  1. function existeCorreo(){
  2.         return false;
  3.     }

en tu form

Código HTML:
<form action="" onsubmit="return existeCorreo()"> 
igual yo usaría un evento de jquery antes de tener un evento en el elemento form

edit: ahora que veo el código tu función no está devolviendo nada, el return lo haces en el post(), debe estar justo antes del cierre de la función

eso es lo que podés hacer AHI

Última edición por Dany_s; 12/04/2010 a las 09:53
  #3 (permalink)  
Antiguo 12/04/2010, 10:05
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: problema con return

HOla, si veo que tiene s la razon, pero en este caso que podria hacer para detener el formulario si el correo existe enla base de datos???
__________________
No hay nada que foros del web no sepa!!!!

Peca tanto quien presume de su belleza como de su inteligencia, ya que la brevedad de la vida aunque distorcionada siempre estara presente.
  #4 (permalink)  
Antiguo 12/04/2010, 10:22
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: problema con return

Código HTML:
<html>
<head>
    <title>Prueba</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
    <script>
    $( function (){
        $('#miForm').submit( function (){
            /*
            veo si existe el correo, seteo la variable existe en true o false según lo que devuelva data
            $.post("inc/user/control/correo.php",{ correo:correo },function(data){
                existe = data;
            });
            como me salto la el envio por post
            entonces seteo variable existe, como que simulo que el resultado de data es false
            */
            existe = true;

            if (!existe){
                $('input[name=asd]').css('borderColor', 'red');
                return false;
            }
        });
    });
    </script>
</head>
<body>
    <form id="miForm" action="pagina.php">
        <input type="text" name="asd">
        <input type="submit">
    </form>
</body>
</html> 
fijate que esta comentado el envio por ajax y seteo existe = true; fuera pero es solo para simular

Etiquetas: return
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 13:54.