继续检查,直到为True

Keep Checking until True

本文关键字:True 检查 继续      更新时间:2023-09-26

基本上,我有一个由CMS处理的表单,我无法编辑它的javascript,但我或多或少想向我的用户添加一条"加载"或"发送"消息。例如

目前,默认表单在提交后,会在发送后将一条html成功消息附加到名为"success"的div中,但基本上,我想在提交按钮上运行一个函数,该函数会不断检查"success"中是否有"以外的任何内容,一旦它不为空,就关闭加载符号。

也许是这样的:

$('#submitBtn').click(function(){
    $('#loadingDiv').show();
    while (!$('#success').html() == ''){
        $('#loadingDiv').hide();
    }
});

如有任何帮助,我们将不胜感激。我只是不太确定如何编写它,我不太擅长jquery或javascript

您可以使用setInterval来完成此操作。类似这样的东西:

$('#submitBtn').click(function(){
    $('#loadingDiv').show();
    var intervalId = setInterval(function() {
        if($('#success').html() != '') {
            clearInterval(intervalId);
            $('#loadingDiv').hide();
        }
    }, 100);
});

while(!$('#success').html()=='')将冻结所有其他操作,并将永远持续。但是,如果你真的不能在成功回调中添加一些代码,最好仔细检查一下。也许ajaxComplete可以帮助你。

也许您可以用这样的东西手动发送表单的数据?

(在这种情况下,也许要确保"submitBtn"是一个简单的按钮,而不是一个提交按钮,以防止默认提交)

$('#submitBtn').click(function(){
    $('#loadingDiv').show();
    // Send the data with post - To complete
    $.post('/your_post_addr', {data_1: my_data_1, ...}, 
        function(data) {
            $('#loadingDiv').hide();          
    }).error(function() {
        // Your error message
        alert('Error'); 
    });
});