Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
>
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
@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:
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
não dispare no click do botão, mas sim no submit do formulário.