iframe内の要素を親画面のsubmitに含ませるためには
対応策は
親画面のsubmit時にiframe内のhtmlを引き抜き、
親画面のformの中にある非表示のdivの中に書き出す。
今回の場合、
・iframe内に表示するhtmlが常に違う
・iframe内に表示するhtmlでほしい要素は全てformで囲まれている。
という条件だったのでiframeの中身をform以下まるごと引き抜いた。
注意すべきは親画面と子画面で要素のnameがかぶらないように気をつけること
色々模索したけど、思いついたのはこれが精一杯だった。
今回はとりあえずinputタグだけだけど、textareaとかが必要な場合には追加すれば良いかな。
function next(){
$('#kakusi').html($('#sheet').contents().find("form").html());
↑これじゃダメでした、そして修正したものが↓
$('#sheet').contents().find('input').each(function() {
$('#mailForm').append('<input type="hidden" name="' + $(this).attr("name") + '" value="' + $(this).val() + '"/>');
});
document.forms[0].action = "hoge";
document.forms[0].submit();
}
・・・
・・・
・・・
<form id="mailForm">
<div id="kakusi" style="display:none"></div>
</form>
jQuery で iframe 内の要素にアクセス (iframe 内の要素を取得し、親ページに配置)
http://gutari.s33.xrea.com/labo/labo_iframe_02.html
jQuery を使って iframe の中の要素にアクセスする方法
http://blog.livedoor.jp/jimuguri/archives/51682666.html