web-dev-qa-db-ja.com

ajax呼び出し後にページの更新を停止する方法は?

Ajax呼び出しの後、ページの更新を停止できません。 e.preventDefault();を入れてみました。 falseを返します。同様に、しかし再び私のページは更新されています。

私は、コードまたは何かに問題があるのか​​わかりません。 ajax呼び出し後にページの更新を停止するのを手伝ってください。この問題を解決することは私にとって大きな助けになるでしょう。前もって感謝します。

ここに私のコードがあります:

$(document).ready(function() {
    $('#loginForm').on('click', function(e) {
        e.preventDefault();
        var formData = {
            'uname'  : $('#uname').val(),
            'pwd'    :      $('#pwd').val()
        };
        $.ajax({
            type        : "POST",
            url         : "getresults.php", 
            data        : formData
        }).done(function(data) {
              alert(data+"This is working");
        }).fail(function(data) {
              alert("This is not working");
        });
    });
});
22
Pradeepb

Id _#loginForm_はフォームを指していますか?はいの場合、クリックする代わりに送信イベントをリッスンする必要があります。本当にクリックイベントをリッスンする必要がある場合は、イベントを送信ボタンまたはform.submit()をトリガーするものにバインドする必要があります。

次のようなものを試してください:

_$('#loginForm').on('submit', function(e) {
    e.preventDefault();
    e.stopPropagation(); // only neccessary if something above is listening to the (default-)event too

    [YOUR CODE GOES HERE]
});
_

これはあなたのためのトリックを行う必要があります。

19
Sebastian Bork

ボタンにtype="button"属性を追加すると、問題が解決しました。それ以外の場合は、送信操作として解釈されました。

31
isidat

クリック機能がページの更新を停止した後にreturn falseを追加するだけだと思います

6
deenbandhu

これは今夜早く私に起こっていました、そして私はこの質問への道を見つけました-これは長いショットかもしれませんが、私の問題が何であるかを理解し、これが将来これを扱う誰かを助けるかもしれないと考えました。

live-serverのようなものをローカルで使用していますか、それとも同じ作業フォルダーに新しいファイルが表示された場合にローカルコードをインテリジェントに更新する他の形式のスクリプトを使用していますか?もしそうなら-ページはコードのためではなく、呼び出したajaxが作業中のフォルダーを操作してページが「更新」されたために更新されています。

2
fanfare