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