JavaScript表单提交()完成

时间:2010-01-04 21:59:34

标签: javascript jquery form-submit

有没有办法调用javascript表单submit()函数或JQuery $ .submit()函数并确保它完成提交过程?具体来说,在表单中,我试图在IFrame中提交表单。在父表单中,我使用以下代码提交IFrame ...

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

父表单然后保存并关闭。但是,目前IFrame未在父表单保存和关闭之前完成帖子。是否有任何方法使用JQuery回调或JavaScript中的某些东西来确保在父表单关闭之前完成此提交过程?

2 个答案:

答案 0 :(得分:1)

您可以做的最好的事情是在jQuery Form plugin的帮助下异步提交iframe的表单。这样您就可以等到返回响应。它还提供了一个success回调处理程序,您可以使用它来提交父页面的表单。

答案 1 :(得分:1)

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

}