0

Iframe(fancybox)で画像を送信しようとしていますが、iframeを閉じると、サーバーにデータが表示されません。

(このコードはフレーム内にあります)

<a class="button" id="finishButton" onclick="closeME()"><span>@PhotoPremier.Resources.Global.btnSubmit</span></a>

<script>
function closeME() {
    if (ValidationToSubmit() == true) {
        $('#FormToSubmit').submit();
    }
}

$('#FormToSubmit').submit(function() {
    event.preventDefault();
    parent.$.fancybox.close();
});​
</script>
4

2 に答える 2

0

重要なのは、投稿が正常に終了するまで待つ必要があり、その後でのみiframeを閉じることができるということです。

ファイルアップロード応答のサーバー側を編集する機能はありますか?はいの場合は、通常の送信と応答の印刷を行ってください。

<script>parent.$.fancybox.close();</script>

jQuery.postを介してフォームを送信し、成功したらiframeを閉じることもできますが、これはファイルのアップロードでは機能しない可能性があります。

<a class="button" id="finishButton" onclick="submit()"><span>@PhotoPremier.Resources.Global.btnSubmit</span></a>

<script>
$('#FormToSubmit').submit(submit);

function submit() {
    if (!ValidationToSubmit()) {
        return;
    }
    var data = {
        x: $("#x").val(),
        y: $("#y").val(),
        ...
    };
    $.post({
        url:"...",
        data: data,
        success: function(){
            parent.$.fancybox.close();
        }
    })
}
</script>

残念ながら、投稿するデータオブジェクトを準備する必要がありますが、フィールドがいくつかある場合は問題ありません。

于 2012-04-10T13:34:10.797 に答える
0

私の回避策は非常に単純で少し創造的です。

シンプルなページにリダイレクトし(私にとっては、すべての状況で使用される共有ページ[MVC]を作成します)、このページは新しいURLを取得し、javascriptによって新しい宛先にリダイレクトしてiframeを閉じます。

<script type="text/javascript">
if("@ViewBag.Url" != "False")
{
    window.parent.location.href = "@ViewBag.Url";
}
parent.$.fancybox.close();
</script>
于 2012-04-12T22:22:24.260 に答える