web-dev-qa-db-fra.com

Comment arrêter l'actualisation d'une page après un appel ajax?

Je ne parviens pas à arrêter d'actualiser la page après un appel ajax. J'ai essayé en mettant e.preventDefault (); et retourne faux; aussi, mais encore une fois, ma page est rafraîchissante. 

Je ne sais pas quel est le problème avec le code ou quelque chose. S'il vous plaît, aidez-moi à arrêter d'actualiser la page après un appel ajax. résoudre ce problème me serait d'une grande aide. Merci d'avance.

Voici mon code:

$(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");
        });
    });
});
16
Pradeepb

L'identifiant #loginForm pointe-t-il sur un formulaire? Si oui, vous devez écouter l'événement de soumission au lieu de cliquer. Si vous avez vraiment besoin d'écouter l'événement click, vous devez lier l'événement au bouton d'envoi ou à tout autre élément déclenchant la fonction form.submit().

Essayez quelque chose comme ça:

$('#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]
});

Cela devrait faire l'affaire pour vous.

17
Sebastian Bork

L'ajout de l'attribut type="button" au bouton a résolu mon problème. Sinon, il a été interprété comme une opération de soumission.

23
isidat

Je pense que l'ajout de return false après la fonction de clic arrêtera l'actualisation de la page.

6
deenbandhu

Cela m’arrivait plus tôt dans la soirée et j’ai trouvé le moyen de répondre à cette question. C’est peut-être un long coup, mais j’ai réalisé en quoi consistait mon problème et je me suis dit que cela pourrait aider quelqu'un dans l'avenir. 

Utilisez-vous quelque chose comme live-server localement ou une autre forme de script qui rafraîchit intelligemment le code local si de nouveaux fichiers apparaissent dans le même dossier de travail? Si tel est le cas, la page actualise non pas à cause de votre code, mais à cause de votre nom ajax manipulé le dossier dans lequel vous travailliez, ce qui a pour résultat la mise à jour de la page.

1
fanfare