Вопрос

Есть ли способ вызвать функцию отправки формы javascript() или функцию jQuery $.submit() и убедиться, что она завершает процесс отправки?В частности, внутри формы я пытаюсь отправить форму внутри IFrame.Из родительской формы я отправляю IFrame со следующим кодом...

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

Затем родительская форма сохраняется и закрывается.Однако в настоящее время IFrame не завершает публикацию до сохранения и закрытия родительской формы.Есть ли какой-нибудь способ использовать обратный вызов jQuery или что-то в JavaScript, чтобы гарантировать, что этот процесс отправки завершится до закрытия родительской формы?

Это было полезно?

Решение

<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;

}

Другие советы

Лучшее, что вы можете сделать, это отправить форму iframe асинхронно с помощью Плагин формы jQuery.Таким образом, вы можете дождаться, пока не будет возвращен ответ.Это также обеспечивает success обработчик обратного вызова, который вы можете использовать для отправки формы родительской страницы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top