親ウィンドウに含まれるフォームを子iframeからjQueryを使用して送信しようとしていますが、運が悪かったです。
子ウィンドウには、次の検証関数があります。
<script type="text/javascript" src="templates/js/jquery.js"></script>
<script type="text/javascript" src="templates/js/jquery.validate.js"></script>
<script>
$(document).ready(function(){
$("#form_invoice_item").validate({
submitHandler: function (form) {
// Check if main invoice already saved
if ($('#invoice_id').val() == "") {
// Change target to processing iframe
try {
parent.$('#invoice_form').ajaxSubmit();
} catch(e) { //debug
alert ("Error:" + e);
}
} else {
alert ("Saving invoice " + $('#invoice_id').val() + ' items'); }
//form.submit(); //debug
}
});
});
</script>
<form method="post" id="form_invoice_item" name="form_invoice_item" action="index.php" target="invoice_items">
で発生するエラーparent.$('#invoice_form').ajaxSubmit();
は
エラー:TypeError:オブジェクト[オブジェクトオブジェクト]にはメソッド'ajaxSubmit'がありません
プレーンなJavascriptである次のスニペットを使用する場合、問題はありません(明らかに、これはjQueryではありませんが、作業は完了します)。jQueryでこれを行うにはどうすればよいですか?
parent.document.getElementById('invoice_form').target='process';
parent.document.getElementById('invoice_form').submit();
parent.document.getElementById('invoice_form').target='';
表示プロパティがhiddenに設定されているprocessという非表示のiframeがあります。