2015-01-03 2 views
13

Я не могу остановить обновление страницы после вызова ajax. Я попытался, поставив e.preventDefault(); и вернуть false; но опять же моя страница освежает.Как остановить освежающую страницу после вызова 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

ли идентификатор #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

'e.stopPropagation();' бесполезно здесь, вам просто нужно предотвратить поведение по умолчанию;) –

+0

о, вы правы ... это был мой обычный способ захвата событий и предотвращения их обычного поведения (я использую чтобы остановить их от пузырей) ... я быстро обновляю свой ответ;) –

+0

@hugohabel и другие: извините. вы правы, он должен быть «на подаче». но после изменения, что также не может остановить обновление. страница обновляется через мгновение. – Pradeepb

5

Я думаю, просто добавив вернуть ложь после того, как на функции мыши остановит страницу с освежающим

11

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

1

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

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

Смежные вопросы