2015-03-24 3 views
0

У меня есть форма, 2 вопроса находятся в отдельных iFrames, эти параметры изменяются в зависимости от того, какие параметры выбраны на родительском фрейме (они автоматически обновляются при выборе некоторых параметров), как я могу получить опцию выбранный в iFrames обратно в родительский кадр для передачи при отправке формы? Родителя фрагмент:Получить форму из iFrame

<td>Manager Name:</td> 
<td><iframe name="manname" id="manname" frameborder="0" width="300" height="21" scrolling="no" src="./get_manager.php"></iframe> 
<input type="hidden" id="starter_manname" name="starter_manname" width="300"> 
</td> 

Я хотел starter_manname содержать то, что выбирает из плавающего фрейма. Это часть содержимого IFrame:

<select id="starter_manname" name="starter_manname" width="300" class="textboxstyle"> 
<option selected value="">----- Select Manager -----</option> 
<option value="CouldBeAnythingVal">CouldBeAnythingName</option> 
</select> 

в плавающих фреймах только содержат <html>, <body> & <option> тегов, нет нет <form> или что-нибудь в там. Я бесполезен в Javascript, и я предполагаю, что это ответ, поэтому, если вы можете объяснить ответ или указать мне в правильном направлении, это будет оценено (без jQuery, хотя, пожалуйста)

ответ

0

Вы можете получить доступ к содержимому iframe с помощью содержимого jquery.(). Если у вас есть IFRAME с идентификатором "myframe" то, что вы можете сделать:

$('#myframe').contents().find('something') 
    // or event bind events 
    $('#myframe').contents().find('button').on('click', function(){ }); 

Если предположить, что у вас есть содержимое внутри фрейма <iframe name="manname" id="manname" frameborder="0" width="300" height="21" scrolling="no" src="./get_manager.php"></iframe>

$(function(){ 
    var selectInframe = $('#manname').contents().find('#starter_manname'); 
    selectInframe.on('change', function(){ 
    var new_val = $(this).val(); 
    $('#starter_manname').val(starter_manname); 
    }); 
}); 

без JQuery вы можете contentDocument

var selectInframe = document.getElementById('manname'); 
var selectInframeDocument = selectInframe.contentDocument; 
// selectInframeDocument is the document form your iframe 
// you can do selectInframeDocument.getElementByTagName('..') etc to access elements and bind 

Надеюсь, вы его получите.

+0

Спасибо, любой способ сделать это без JQuery? – Maff

+0

обновил ответ. – roxxypoxxy

Смежные вопросы