El formulario jquery se envía antes de jquery dialog ui

tengo este complemento openid pero cuando hago clic en aol se abre el cuadro de diálogo y en poco tiempo se cierra automáticamente y se envía el formulario. quiero que se detenga en el momento en que se abra el cuadro de diálogo y que el formulario se envíe solo cuando cierre el cuadro de diálogo

Por favor, ayúdame

(function($){
  $.fn.openid = function() {
    $('input').click(function(e){
      var provider = $(this).attr('class');
     if (provider == 'aol') {
        $("#dialog").dialog();  
         }
     else{
      var provider_url = $(this).attr('id');  //get id
      var myinput = $('<input type="hidden" name="provider_url"/>').val(provider_url);
        }  
        $('form').append(myinput);
      $('form').submit();
    })
  }
})(jQuery);

incluso e.stopPropogation(); para el controlador de eventos de clic no funciona, incluso si pongo form.submit (return false) en if loop, deshabilite el formulario por completo para else loop también

preguntado el 02 de mayo de 12 a las 19:05

2 Respuestas

Has intentado agregar

e.preventDefault();

al comienzo de su función de clic?

contestado el 02 de mayo de 12 a las 19:05

Creo que el problema está ocurriendo gracias a esta paz de código:

$('form').submit();

La paz del código se asienta por sí sola y, por lo tanto, se ejecutará cada vez que se haga clic en $('input'). Lo que debe intentar es poner esa paz de código en otra función de clic de jQuery o ponerla dentro de una declaración if of else.

$('.buttonX').click(function()
{
   $('form').submit();
});

contestado el 02 de mayo de 12 a las 19:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.