2015-01-03 32 views
13

Nie mogę zatrzymać odświeżania strony po wywołaniu ajax. Próbowałem przez umieszczenie e.preventDefault(); i zwraca false; również, ale znowu moja strona jest odświeżająca.Jak zatrzymać odświeżanie strony po wywołaniu ajax?

Nie wiem, jaki jest problem z kodem lub czymś takim. Proszę mi pomóc przestać odświeżać stronę po wywołaniu ajax. rozwiązanie tej kwestii byłoby dla mnie wielką pomocą. Z góry dziękuję.

Oto mój kod:

$(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

Czy '# loginForm' jest formularzem lub przyciskiem? Czy możesz również podać swój kod HTML? – hugohabel

Odpowiedz

13

Czy id #loginForm wskazując na formularzu? Jeśli tak, musisz wysłuchać zgłoszenia, a nie kliknąć. Jeśli naprawdę chcesz usłyszeć wydarzenie click, musisz powiązać wydarzenie z przyciskiem przesyłania lub cokolwiek innego, co wyzwala form.submit().

spróbować czegoś takiego:

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

To powinno wystarczyć dla Ciebie.

+2

'e.stopPropagation();' jest tutaj bezużyteczna, wystarczy zapobiec domyślnemu zachowaniu;) –

+0

oh masz rację ... to był tylko mój zwykły sposób przechwytywania zdarzeń i zapobiegania ich zwykłemu zachowaniu (jestem używany aby powstrzymać ich od bulgoczenia) ... szybko aktualizuję moją odpowiedź;) –

+0

@hugohabel i inni: przepraszam. masz rację, powinno to być "na składanie". ale po zmianie tego również nie można przestać odświeżać. strona odświeża się po chwili. – Pradeepb

5

myślę tylko dodawanie return false po kliknięciu na funkcję zatrzyma stronę z orzeźwiający

11

Dodanie atrybutu type="button" przycisk, aby rozwiązać mój problem. W przeciwnym razie został zinterpretowany jako operacja przesłania.

1

To zdarzyło się dziś wieczorem, i znalazłem drogę do tego pytania - To może być długa perspektywa, ale zdałem sobie sprawę z tego, czym jest mój problem i wyobrażam sobie, że może to pomóc komuś w przyszłości sobie z tym poradzić.

Czy używasz lokalnie lub jakiejś innej formy skryptu, która inteligentnie odświeża lokalny kod, jeśli nowe pliki pojawią się w tym samym folderze roboczym? Jeśli tak, strona odświeża się nie z powodu twojego kodu, ale dlatego, że wywołany przez ciebie ajax manipulował folderem, w którym pracowałeś, powodując, że strona "aktualizowała się".