Ir para conteúdo

POWERED BY:

Arquivado

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

dataset

[Resolvido] $.post com document.getElementById('IdFormTu

Recommended Posts

Olá ...

 

Tenho um botão que chama a função fFun:

function fFun(vVal){ 
if ( (vVal == 'Gravar') && (MSN) ){
    $.post('/alunoturma.asp',{codTur: document.getElementById('codCur').value}, 
	function(theEnd){
	    if(theEnd != ''){window.alert('O aluno já está matriculado nessa turma.');document.getElementById('codCur').focus();MSN = false;}
	}
    );
}

if (MSN){
	document.getElementById('modo').value=vVal;
	document.getElementById('IdFormTurmasAluno').submit();
}
}

 

Com o document.getElementById('IdFormTurmasAluno').submit(); gera esse erro:

$.post.jpg

 

Quando eu tiro o document.getElementById('IdFormTurmasAluno').submit(); não gera erro, inclusive retorna a requisição do $.post

 

Só que o formulário não dá submit.

 

Quando eu coloco volta a dar problema.

 

Não sei o que pode ser... alguém já passou por isso ou sabe como resolver ?

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entenda que ajax por padrão é ASSINCRONO.

 

o teu if não espera o retorno do ajax, para ser executado.

Veja sobre o objeto deferred:

http://wbruno.com.br/2012/01/23/exemplo-de-uso-jquery-deferred-simples/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu usaria esse então ?

        /* enviando ajax_form2 com then */  
       jQuery('#ajax_form2').submit(function(){  

           var ret = envia_form( jQuery( this ) );  
           ret.then(function( dados ){  
               alert( dados );  
           });  

           return false;  
       });  

 

E dentro ret.then eu colocaria todas as outras validações junto com o submit ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu botei o if dentro do jQuery, mas mesmo assim não funcionou...

 

        $('#fEnviar').click(function(){
           $.post('/paratodos/consultas/alunoturma.asp',{codTur: document.getElementById('codCur').value}, 
               function(theEnd){
                   if(theEnd != ''){window.alert('ALERTA DO SISTEMA !\n\nO aluno já está matriculado nessa turma.\n\nNão é possível gravar duas vezes');document.getElementById('codCur').focus();MSN = false;}
               }
           );

           if (MSN){
               document.getElementById('modo').value='Gravar';
               document.getElementById('IdFormTurmasAluno').submit();
           }

       });

 

Estou tentando mas não sei como fazer.

 

Li o link que estava no seu site: http://www.maujor.com/blog/2011/02/01/o-objeto-deferred-da-jquery-1-5

mas não consigo fazer.

 

Se puder me ensinar ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz assim:

 

 

            $.post('/paratodos/consultas/alunoturma.asp',{codTur: document.getElementById('codCur').value}, 
               function(theEnd){
                   if(theEnd != ''){window.alert('ALERTA DO SISTEMA !\n\nO aluno já está matriculado nessa turma.\n\nNão é possível gravar duas vezes');document.getElementById('codCur').focus();MSN = false;}


                   if (MSN){
                      document.getElementById('modo').value='Gravar';
                      document.getElementById('IdFormTurmasAluno').submit();
                   }

               }
           );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enquanto você respondia eu tentava... e fiz dessa forma:

 

Deu certo... você pode me dizer se fiz corretamente ?

Como eu posso melhorar esse código pra ele ficar mais profissional ? Mais otimizado. Acho que ficou meio principiante ne ? rsrs

 

$('#fEnviar').click(function(event) {
   event.preventDefault();
   if (document.getElementById('codCur').value != '') {
$.ajax({
    url: '/paratodos/consultas/alunoturma.asp',
    data: 'codTur='+$('#codCur').val(),
    type: 'POST',
    context: jQuery('#resultado'),
    success: function(data){
	if(data != ''){window.alert('ALERTA DO SISTEMA !\n\nO aluno já está matriculado nessa turma.\n\nNão é possível gravar duas vezes');document.getElementById('codCur').focus();MSN = false;}
	if (MSN){
	    document.getElementById('modo').value='Gravar';
	    $('#IdFormTurmasAluno').submit();
	}
    }
});
   }
   else {
window.alert('ALERTA DO SISTEMA !\n\nSelecione uma turma');document.getElementById('codCur').focus();
   }
});

 

Eu gosto muito de jQuery, estou mudando o que posso pro servidor ficar mais leve nas requisições. Acho que o caminhoé por aí, mas eu gostaria de aprender mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma das coisas q você pode mudar é isso aqui:

    if (document.getElementById('codCur').value != '') {

já q você ta importanto o jQuery, usa ele:

 

    if ( jQuery('#codCur').val() != '') {

entendeu ??

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.