2

送信時にページを自動的に更新するフォームがあります。追加してみました。

onSubmit="return false;"フォーム要素に移動しますが、フォームは停止し、[送信]をクリックしても何も起こりません。

ページの更新はそれほど気になりませんが、フォームはページの下部にあり、更新すると上部に戻ります。だから私はこのアプローチを試しました:

<form name='test' method='POST' action="index.php" onSubmit="window.scrollTo(5000,500);">

これは一瞬で機能しますが、他の何かがそれをオーバーライドします(何がわからない)

また、phpを使用してみheader.locationました。「ヘッダーはすでに送信されています」というエラーを取得するためだけです。

問題のサイトはここで見ることができ、フォームは一番下にあります。

私が使用しているjqueryライブラリのうち、競合を予測できるのは、nicescrollと(より可能性が高い)ウェイポイントの2つだけですが、両方を調べたところ、競合する問題は見つかりませんでした。

フォームの機能を維持する方法を知っているが、ページの更新を停止する方法を誰かが知っているなら、それは素晴らしいことですありがとう

編集:以下の回答を読んだ後、これを達成するにはajaxを使用する必要があるようです。私はajaxの経験がまったくないので、それがどのようになるかを見ていきます。

4

3 に答える 3

8

その場合、 AJAXサブミッションを経由する必要があるようです。その場合、jQuery$.ajax()メソッドを使用してそれを行うことができます。以下のサンプル:

HTML

<form name='test' method='POST' action="index.php">

jQuery

$('form[name=test]').submit(function(e) {
   e.preventDefault();
   window.scrollTo(5000,500);

   // a sample AJAX request
   $.ajax({
     url : this.action,
     type : this.method,
     data : $(this).serialize(),
     success : function(response) {

     }
   });
});

ここで.preventDefault()は、フォーム送信時にページの更新を停止します。

于 2012-08-16T18:57:22.877 に答える
2

フォームを非表示のIFRAMEに送信してみませんか?

<iframe name="myiframe" style="display: none;"></iframe>
<form name='test' method='POST' action="index.php" target="myiframe">
  ...
</form>
于 2012-08-16T18:59:09.510 に答える
0

通常のフォーム送信の代わりにAJAXを使用するのはどうですか?

于 2012-08-16T18:58:36.050 に答える