Pregunta

¿Hay una manera de llamar la forma Javascript a presentar la función () función o la .submit jQuery $ () y asegúrese de que se completa el proceso de envío? En concreto, dentro de un formulario, que estoy tratando de enviar un formulario en un marco flotante. Desde el formulario principal, que estoy presentando el IFrame con el siguiente código ...

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

La forma original a continuación, guarda y cierra. Sin embargo, actualmente el marco flotante no está completando su cargo antes del formulario padre guarda y cierra. ¿Hay alguna manera el uso de una devolución de llamada jQuery o algo en JavaScript para asegurar que este proceso se complete antes de enviar el formulario principal se cierra?

¿Fue útil?

Solución

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

}

Otros consejos

Mejor de lo que puede hacer es enviar el formulario del marco flotante de forma asíncrona con la ayuda de Formulario jQuery Plugin . De esta manera usted puede esperar hasta que se devuelve la respuesta. También proporciona un controlador de devolución de llamada success que se puede utilizar para enviar el formulario de la página principal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top