4

私はこれが可能かどうかを理解しようとしています。

新しいウィンドウでBarへのアクションを持つForm-Fooを持つPage-Aがあります。

[送信]をクリックしたら、フォームを送信して、ページAを再読み込みしてください。

これまでのところ、私はどちらか一方しか機能させることができません...どんなポインタでもいただければ幸いです。

DudeSolutionsソリューションに加えて...私はこれを試しました:

$(document).ready(function() {
    $('#foo').submit(function() {
        $.post('bar.asp', $(#foo).serialize(), function(data) {

                window.location.reload();

        });

    });
});

同じ結果...送信するフォームを取得でき、新しいタブが開きます...しかし、ページAはリロードされません。

4

2 に答える 2

6

フォームを送信してページをリロードする場合は、これがデフォルトの動作であり、action属性のURLのみが正しくありません。もしそうなら、URLを変更するだけで、とにかく新しいページロードが意図されている場合はajaxは必要ありません:

$(function() {
    $('#Form-Foo').attr('action', 'Page-A url');
});

また:

$(function() {
    $('#foo').on('submit', function(e) {
          e.preventDefault();
          setTimeout(function() {
               window.location.reload();
          },0);
          this.submit();
    });
});

リロードをキューに入れるだけで、フォームが送信されてページがリロードされるまで待つことができますが、ほとんどのブラウザはブラウザタブを離れるとタイムアウトを停止するため、そのタブに戻るまで実際にはリロードされませんが、目立たないはずです。

于 2012-12-10T23:32:34.753 に答える
-1

ここにアイデアがあります:

  <script type="text/javascript">
    $("#my_form").submit(function() {
      $.ajax({
        type: "POST",
        url: "/path/to/post/handler/",
        data: $("#my_form").serializeArray(),
        success: function() {
    top.reload();
        }
        });
    return false;
});</script>
于 2012-12-10T23:34:01.710 に答える