Завершение отправки формы JavaScript()
-
18-09-2019 - |
Вопрос
Есть ли способ вызвать функцию отправки формы 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
обработчик обратного вызова, который вы можете использовать для отправки формы родительской страницы.