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

How to stop refreshing page after ajax call?

我无法在 ajax 调用后停止刷新页面。我试过把 e.preventDefault(); return 错误;同样,但我的页面再次令人耳目一新。

我不知道代码有什么问题。请帮助我在 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");
        });
    });
});

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]
});

这应该可以解决您的问题。

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

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

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

您是在本地使用 live-server 之类的东西,还是在同一工作文件夹中出现新文件时智能刷新本地代码的其他形式的脚本?如果是这样 - 页面刷新不是因为您的代码,而是因为您调用的 ajax 操作了您正在处理的文件夹,导致页面 'updating'.

当您打开 live server 扩展或类似刷新 html 页面的东西时,可能会发生这种情况。