在Jquery's .unload已弃用的情况下,取消提交按钮文本设置的正确方法

Correct way to unset submit button text now that Jquery's .unload is deprecated

本文关键字:按钮 提交 取消 文本 设置 方法 情况下 unload Jquery      更新时间:2023-09-26

SETUP -大型搜索与许多条件作为POST通过html提交按钮,它可能需要几秒钟前第一个字节发送到服务器/结果页面开始加载。

http://api.jquery.com/unload/现在已弃用(从1.8版本开始),我正在寻找执行以下操作的正确方法…

当有人点击搜索按钮时,我通过将按钮文本设置为"Searching…"来给用户一点反馈,然后允许提交继续(返回true):

    $('#dosearch').click(function() { 
        $(this).html('<i class="icon-spinner icon-spin"></i> Searching...');
        return true; 
    });

在卸载过程中,我正在做这个:

   $(window).unload(function() {
        $('#dosearch').html('<i class="icon-search"></i> Search');
    });

我尝试绑定到beforeunload,但它会在提交发生时触发(坏),而不是在浏览器开始呈现新页面时触发(好)。

问题是,如果他们点击搜索,然后点击返回按钮在他们的浏览器。如果他们这样做,那么搜索…文本仍然显示。

什么是正确的/适当的方法来做我在这里尝试的?

注意:(I标记的原因是我使用了awesome字体)

绑定一个空事件处理程序来卸载似乎有效,但这是一种hack。

    $('#dosearch').click(function() { 
        $(this).html('<i class="icon-spinner icon-spin"></i> Searching...');
        return true; 
    });
    $(window).on("load", function(){ 
        $('#dosearch').html('<i class="icon-search"></i> Search'); 
    });
    $(window).on("unload", function(){ 
        // Leave this blank handler here or onload won't fire on IE or FF when you click back button 
    });

如果用户回到历史,这意味着它呈现的页面是新的还是不新的?因此,无论何时加载页面,您都可以将该值重置为您想要的值。

会是什么吗?