Как остановить обновление страницы после вызова 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");
        });
    });
});

Ответ 1

Указывает ли 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]
});

Это должно сделать трюк для вас.

Ответ 2

Добавление атрибута type="button" к кнопке разрешило мою проблему. В противном случае это интерпретировалось как операция отправки.

Ответ 3

Я думаю, что просто добавление return false после того, как функция щелчка остановит страницу от обновления

Ответ 4

Это происходило со мной раньше сегодня вечером, и я нашел свой путь к этому вопросу. Это может быть длинный выстрел, но я понял, что моя проблема и что это может помочь кому-то в будущем справиться с этим.

Используете ли вы что-то вроде live-server локально или какую-либо другую форму script, которая интеллектуально обновляет локальный код, если новые файлы появляются в одной рабочей папке? Если это так - страница обновляется не из-за вашего кода, а потому, что любой аякс, который вы вызывали, управляет папкой, в которой вы работали, в результате чего происходит обновление страницы.