Выбор формы в фрейме с использованием jQuery - PullRequest
6 голосов
/ 02 июня 2010

У меня есть форма внутри iframe, которая находится внутри диалогового окна jQuery UI. Форма содержит тип ввода файла. Диалоговое окно jQuery UI содержит кнопку загрузки. Когда эта кнопка нажата, я бы хотел программно вызвать метод submit. Мой вопрос заключается в том, как я могу выбрать форму, которая находится в iframe, используя 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 содержит:

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

Код javascript диалогового окна jQueryUI:

$('#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'); 
        }
    },
    ....
});

Из приведенного выше фрагмента кода JavaScript, как я могу выбрать форму с идентификатором upload-form , которая находится в iframe с идентификатором upload_file_iframe ?

Ответы [ 3 ]

16 голосов
/ 02 июня 2010

Доступ к элементу внутри iframe довольно сложен. Вы должны использовать следующий синтаксис:

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

где 'iframeID', очевидно, является идентификатором, который вы дали iframe.

Надеюсь, это правильно!

2 голосов
/ 02 июня 2010

Ответ:

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

, который я узнал от http://simple.procoding.net/2008/03/21/how-to-access-iframe-in-jquery/

0 голосов
/ 02 июня 2010

От головы до головы, я бы сказал, что вам, возможно, придется добавить логику в файл, откуда взят источник iframe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...