Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fernandotholl

[Resolvido] Ao clicar no Botão executa a requisição 2 vezes

Recommended Posts

Bom dia pessoal!

 

Ao clicar no botão Salvar Formulário o seguinte trecho de código é executado:

 


       var $BotSalvarCargo = jQuery('#SalvarCargo'); 
       var $BotCancelCargo = jQuery('#CancelarBoxCargo');
       var $ResultCargo    = jQuery('#Result');  

       $BotSalvarCargo.live('one click', function(event){

           event.preventDefault();            
           var NomeCargo = jQuery('#novoCargo').val();

           jQuery.ajax({
               type: "POST",
               url: "gerencia-form-novo-cargo.php",
               data:{
                   empresa:empresaCargo,
                   grupo:grupoCargo,
                   nome:NomeCargo,
                   base:base,
                   base_man:baseMan
               },
               beforeSend:function(){
                   $('#loadingCargo').show();
               },
               success:function(data){
                   $('#loadingCargo').fadeOut("slow");

                   $ResultCargo.html('<span style="color: green">Cargo Cadastrado com sucesso!</span>');
                   $ResultCargo.fadeIn("slow");
                   $('#'+idCampo).append(data);
                   setTimeout(function(){                            
                       BoxNCargo.hide();
                       $ObjPrelod.fadeOut('slow');
                   },2000);
                   }
               }
           });
       });

 

Ele funciona corretamente, porém na primeira vez que clico no botão "Salvar" ele executa a requisição apenas uma vez, após uma segunda tentativa sem recarregar a página ele executa a requisição 2 vezes.

 

Alguem saberia me informar o que pode estar ocorrendo? Eu coloquei o event.preventDefault(); para tentar remover uma ação anterior ao que estava fazendo mais no caso não ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não dispare no click do botão, mas sim no submit do formulário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não dispare no click do botão, mas sim no submit do formulário.

 

William na verdade eu me expressei mal, o botão é para adicionar um novo <option> no Select antes de salvar o formuláro, eu descobri o que estava ocorrendo, na verdade foi outro erro que cometi.

 

Eu abria um BOX quando o usuário clicava em um botão:

 

$ObjBCargo.live('click', function(event){
  abreBox();
});

E dentro dessa função eu definia a ação do botão Salvar, por isso o erro, na segunda vez quando tentava cadastrar um novo <option> ele executava novamente a requisição. Meu código errado estava assim:

 

$ObjBCargo.live('click', function(event){
  abreBox();
  $BotSalvarCargo.live('one click', function(event){
     /* Requisição Ajax Aqui!!! */
  });
});

Foi um erro tolo, e se ajudar a quem tiver o mesmo problema, eu resolvi dessa forma:

 


/* Objetos */
var $BotSalvarCargo = jQuery('#SalvarCargo'); 
var $BoxNCargo = jQuery('#boxNovoCargo');
var $ObjRCargo = jQuery('#RemoveBoxCargo');

/* Ações */
$ObjBCargo.live('click', function(event){
  abreBox();
});

$BotSalvarCargo.live('one click', function(event){
  /* Requisição Ajax Aqui!!! */
});

 

Obrigado pela Ajuda William

Compartilhar este post


Link para o post
Compartilhar em outros sites

@fernandotholl, tranquilo cara.

 

Mas qndo postar algo, poste o código real.

Realmente você colocar um .live dentro de outro, é oq gerou o seu problema.

 

Mas não dava para eu saber q você tinha feito isso pelo código q você postou no primeiro post.

 

:lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uhum, na verdade eu nem imagei no início que o erro poderia estar na outra ação. Mais vou aprendendo aos poucos. Vlw ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.