2010-06-01 18 views
5

Tengo un formulario dentro de un iframe que está dentro de un cuadro de diálogo de la interfaz de usuario jQuery. El formulario contiene un tipo de entrada de archivo. El cuadro de diálogo de la interfaz de usuario jQuery contiene un botón Cargar. Cuando se hace clic en este botón, me gustaría llamar programáticamente al método de envío. Mi pregunta es cómo podría seleccionar el formulario que está en un iframe usando jQuery. El siguiente código debe aclarar el panorama:Seleccionar un formulario que está en un iframe usando jQuery

<div id="upload_file_picker_dlg" title="Upload file">   
    <iframe id="upload_file_iframe" src="/frame_src_url" frameborder=0 width=100% scrolling=no></iframe> 
</div> 

frame_src_url contiene:

<form action="/UploadTaxTable" enctype="multipart/form-data" method="post" id="upload-form">    
<p>Select a file to be uploaded:</p> 
<p> 
    <input type="file" name="datafile" size="60"> 
</p> 

el cuadro de diálogo jQueryUI código javascript:

$('#upload_file_picker_dlg').dialog({ 
    ... 
    buttons: { 
     'Close': function() { 
      $(this).dialog('close'); 
     }, 
     'Upload': function() {    
      $('#upload-form').submit(); //question is related to this line 
      $(this).dialog('close'); 
     } 
    }, 
    .... 
}); 

Desde el fragmento de código JavaScript anterior, ¿Cómo puedo seleccionar el formulario con id upload-form que se encuentra en el iframe cuyo id es upload_file_iframe?

Respuesta

15

Acceder a un elemento dentro de un iframe es complicado. Se debe utilizar la siguiente sintaxis:

$('#iframeID').contents().find('#upload-form').submit(); 

donde 'iframeID' es, obviamente, una identificación que le has dado a la iframe.

Espero que sea correcto!

+0

Sí, eso es correcto. Publiqué mi respuesta al igual que tú. Pero tu respuesta es 100% correcta. Seleccioné tu respuesta y voté tu respuesta. Gracias. –

0

En la parte superior de mi cabeza diría que podría tener que agregar la lógica al archivo de donde proviene la fuente del iframe.

+0

Tal vez eso funcionaría, pero no debería tener que hacerlo. Solo necesito saber un selector jQuery que selecciona un formulario (o ID en general) que está dentro de un iframe. –

Cuestiones relacionadas