سؤال

هل هناك طريقة لاستدعاء وظيفة إرسال نموذج JavaScript أو وظيفة jQuery $ .submit () وتأكد من أنه يكمل عملية تقديم؟ على وجه التحديد، في النموذج، أحاول إرسال نموذج داخل IFRAME. من النموذج الأصل، أقدم iFrame مع التعليمات البرمجية التالية ...

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

النموذج الأصل ثم يحفظ ويغلق. ومع ذلك، حاليا IFRAME لا يكمل المنشور قبل أن يحفظ النموذج الأصل ويغلق. هل هناك أي طريقة باستخدام رد اتصال jQuery أو شيء ما في جافا سكريبت لضمان اكتمال عملية إرسال هذه قبل إغلاق النموذج الأصل؟

هل كانت مفيدة؟

المحلول

<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 Form Plugin.. وبعد بهذه الطريقة يمكنك الانتظار حتى يتم إرجاع الاستجابة. كما يوفر success معالج الاتصال الذي يمكنك استخدامه لإرسال نموذج الصفحة الأصل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top