Pergunta

Existe uma maneira de chamar a função JavaScript Submit () ou a função jQuery $ .submit () e verifique se ela conclui o processo de envio? Especificamente, dentro de um formulário, estou tentando enviar um formulário dentro de um iframe. No formulário pai, estou enviando o iframe com o seguinte código ...

document.frames.IFRAME_Items.document.forms[0].submit();

O formulário pai salva e fecha. No entanto, atualmente o iframe não está concluindo a postagem antes que o formulário pai salva e feche. Existe alguma maneira de usar um retorno de chamada de jQuery ou algo em JavaScript para garantir que esse processo de envio seja concluído antes que o formulário pai -pai seja fechado?

Foi útil?

Solução

<form onsubmit="return controlParentForm();" id="parentForm">
...
</form>

JS:

var controlSubmitParentForm = 0;
function controlParentForm(){

   var ret = false;

   if (controlSubmitParentForm==0){

     controlSubmitParentForm = 1;
     document.frames.IFRAME_Items.document.forms[0].submit();
     setTimeout(controlParentForm, 200);

   }
   else if (controlSubmitParentForm==1){

     if (document.frames.IFRAME_Items.document.readyState=="complete"){
        controlSubmitParentForm = 2;
        document.getElementById("parentForm").submit();
     }
     setTimeout(controlParentForm, 200);

   }
   else if (controlSubmitParentForm==2){
       // controls for "parentForm"
       ret = true;
       controlSubmitParentForm = 0;
   }

   return ret;

}

Outras dicas

O melhor que você pode fazer é enviar a forma do iframe de forma assíncrona com a ajuda de plug -in de formulário jQuery. Dessa forma, você pode esperar até que a resposta seja retornada. Também fornece um success Manipulador de retorno de chamada que você pode usar para enviar o formulário da página pai.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top