如何在ajax调用后停止刷新页面?

时间:2015-01-03 20:48:59

标签: javascript jquery ajax refresh

我无法在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");
        });
    });
});

5 个答案:

答案 0 :(得分:28)

向按钮添加type="button"属性解决了我的问题。否则它被解释为提交操作。

答案 1 :(得分:17)

id #loginForm是否指向表单?如果是,则需要收听提交事件而不是单击。如果您确实需要侦听click事件,则必须将事件绑定到提交按钮或触发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 :(得分:6)

我认为只需在点击功能上添加return false就会停止刷新页面

答案 3 :(得分:1)

今晚早些时候发生了这件事,我找到了解决这个问题的方法 - 这可能是一个很长的镜头,但我意识到我的问题是什么,并认为这可能有助于将来处理这个问题。

您是否在本地使用live-server或其他形式的脚本,如果新文件出现在同一工作文件夹中,则智能刷新本地代码?如果是这样 - 页面刷新不是因为您的代码,而是因为您调用的任何ajax操纵了您正在使用的文件夹,导致页面“更新”。

答案 4 :(得分:1)

当您打开实时服务器扩展名或类似刷新HTML页面的内容时,就会发生这种情况。