2015-01-03 14 views
13

ajax呼び出し後にページを更新するのを停止できません。私はe.preventDefault();偽を返します。私のページもまた爽やかです。ajax呼び出しの後にページをリフレッシュする方法を教えてください。

私はコードか何かに問題が何であるかを知りません。 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"); 
     }); 
    }); 
}); 
+0

'#loginForm'はフォームかボタンですか?あなたはまた、あなたのHTMLコードを提供できますか?それは私が使用してる(イベントをキャプチャし、通常の動作からそれらを防ぐために、ちょうど私のいつものやり方だった) – hugohabel

答えて

13

は、フォームへの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] 
}); 

これがあなたのためにトリックを行う必要があります。私はちょうどクリック機能上のボタンにtype="button"属性を追加する

+2

'e.stopPropagation();'ここに無用ですが、あなただけのデフォルトの動作を阻止する必要があります私はすぐに私の答えを更新;) –

+0

ああ、あなたが正しいです...; –

+0

@ hugohabelと他の:申し訳ありません。あなたは正しい "それは"提出する必要があります。しかし、それを変更した後にも、爽快を止めることはできません。ページはしばらくしてからリフレッシュしています。 – Pradeepb

5

は私の問題を解決しました。それ以外の場合は、送信操作として解釈されました。

11

をリフレッシュからページを停止します後にfalseを返す追加思う

1

これは、以前の今夜、私に起こっていた、と私はこの質問への私の方法を見つけた - これは、ロングショットであるかもしれないが、私は私の問題は何であったか実現し、これは、これに対処将来の誰かを助けるかもしれない把握。

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

関連する問題